programing

Laravel first 아니면 새 제품인지 확인하는 방법?

bestcode 2022. 10. 27. 21:57
반응형

Laravel first 아니면 새 제품인지 확인하는 방법?

하고 있습니다.firstOrNew()새 사용자를 만들거나 기존 사용자를 검색하여 업데이트합니다.

오브젝트가 생성된 후 오브젝트가 존재하는지 또는 새로운 오브젝트인지 어떻게 알 수 있습니까?

아이디어는 다음과 같습니다.

$user = \App\User::firstOrNew([
    'email' => $userData->getEmail(),
    'name' => $userData->getName(),
]);

if ($user->new) { // some way to check
    // user was created now
} else {
    //user already existed
}

first Or New()

이 함수는 데이터베이스에서 첫 번째 레코드를 반환하거나 데이터베이스에 아직 존재하지 않는 새 모델 인스턴스를 인스턴스화합니다. " " "를 하십시오.exists (함수가 아닌) 특성입니다.

if ($user->exists) {
    // user already exists and was pulled from database.
} else {
    // user created from 'new'; does not exist in database.
}

은 ★★★★★★★★★★★★★★★★★★★★★★★★firstOrNew() 많은 것 firstOrCreate()도 그렇고 firstOrCreate()을 하다

first Or Create()

이 함수는 데이터베이스에서 첫 번째 레코드를 반환하거나 데이터베이스에 새 레코드를 생성하여 반환합니다.하므로 ""를 수 .exists두 경우 모두 사실이기 때문입니다. 「」, 「」는 할 수 있습니다.wasRecentlyCreated 이미 .이 속성은 현재 모델 인스턴스가 데이터베이스에 방금 생성된 경우 true이고 데이터베이스에 이미 있는 경우 false입니다.

if ($user->wasRecentlyCreated) {
    // user just created in the database; it didn't exist before.
} else {
    // user already existed and was pulled from database.
}

사용자가 최근에 생성되었는지 확인할 수 있습니다.

if ($user->wasRecentlyCreated) {
    // new user
} else {
    // user already exists
}

(출처:Thomas Kim (이 답변부터)

현재 라이프 사이클에서 모델을 작성한 경우 모델의 wasReentlyCreated 속성이 true로 설정됩니다.그렇지 않으면 해당 속성이 false로 설정됩니다.

즉, test@yopmail.com 라는 이메일을 가진 사용자가 있다고 가정해 보겠습니다.

$user = User::firstOrCreate(['email' => 'test@yopmail.com']);
var_dump($user->wasRecentlyCreated);

// 이 엔트리가 이미 존재했기 때문에 위의 엔트리는 false로 덤프됩니다.그렇지 않으면 true입니다.

모델에서 ID(또는 다른 고유한 기본 키)를 언제든지 확인할 수 있습니다.

$user = \App\User::firstOrNew([
    'email' => $userData->getEmail(),
    'name' => $userData->getName(),
]);

if($user->id) {
    // The user exists and was retrieved from the database...
}

if (!$user->id) {
    // The user was not found in the database and a new User model was created...
}

모델을 끈기 있게 에는 이 을 사용하는 것이 합니다.$user->save() , 을 사용할 수 .$user->id데이터베이스에서 검색되었는지 여부를 확인합니다.이는 새 모델이 저장된 후 새 모델의 모든 속성이 채워지기 때문입니다.

언급URL : https://stackoverflow.com/questions/30686880/laravel-firstornew-how-to-check-if-its-first-or-new

반응형