이 글은 Laravel Eloquent에 대한 기술 공유(예제)를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
Laravel은 기능이 풍부한 프레임워크입니다. 그러나 공식 문서에서 사용 가능한 모든 기능을 찾을 수는 없습니다. 다음은 여러분이 알지 못할 수도 있는 몇 가지 기능입니다.
1. 원본 속성 가져오기
Eloquent 모델 레코드를 수정할 때 getOriginal() 메소드를 호출하여 레코드의 원래 속성을 가져올 수 있습니다
$user = App\User::first(); $user->name; //John $user->name = "Peter"; //Peter $user->getOriginal('name'); //John $user->getOriginal(); //原始 $user 记录
2.
isDirty( ) 메소드를 사용하여 모델이나 특정 속성이 수정되었는지 확인하세요.$user = App\User::first(); $user->isDirty(); //false $user->name = "Peter"; $user->isDirty(); //true
$user->isDirty('name'); //true $user->isDirty('age'); //false
3. 변경된 속성을 가져옵니다
getChanges()를 사용하여 변경된 속성을 가져옵니다.$user->getChanges() //[ "name" => "Peter", ]
기본적으로 Laravel은 삭제된_at 필드를 사용하여 소프트 삭제를 처리합니다. DELETED_AT 속성을 정의하여 변경할 수 있습니다.
class User extends Model { use SoftDeletes; * The name of the "deleted at" column. * * @var string */ const DELETED_AT = 'is_deleted'; }
class User extends Model { use SoftDeletes; public function getDeletedAtColumn() { return 'is_deleted'; } }
5. 모델 및 관계 저장
push() 메서드를 사용하여 모델과 해당 관계를 저장할 수 있습니다.
class User extends Model { public function phone() { return $this->hasOne('App\Phone'); } } $user = User::first(); $user->name = "Peter"; $user->phone->number = '1234567890'; $user->push(); // 这将更新数据库中的用户和电话
6. 모델을 다시 로드하세요
데이터베이스에서 모델을 다시 로드하려면 fresh()를 사용하세요.
$user = App\User::first(); $user->name; // John // user 表被其他进程修改。 例:数据库又插入一条 “name” 为 “Peter” 的数据。 $updatedUser = $user->fresh(); $updatedUser->name; // Peter $user->name; // John
$user = App\User::first(); $user->name; // John // user 表被其他进程修改。例: “name” 被修改为 “Peter” 。 $user->refresh(); $user->name; // Peter
8. 모델이 동일한지 확인
is() 메서드를 사용하여 두 모델이 동일한 기본 키를 갖고 동일한 테이블에 속하는지 확인합니다.
$user = App\User::find(1); $sameUser = App\User::find(1); $diffUser = App\User::find(2); $user->is($sameUser); // true $user->is($diffUser); // false
9. 모델 복제
Replicate() 메서드를 사용하여 모델을 새 개체에 복사할 수 있습니다.
$user = App\User::find(1); $newUser = $user->replicate(); $newUser->save();
10. find() 메소드에 찾을 속성을 지정하세요
find()나 findOrFail() 메소드를 사용할 때, 찾을 속성을 지정하려면 두 번째 매개변수를 전달하세요.
$user = App\User::find(1, ['name', 'age']); $user = App\User::findOrFail(1, ['name', 'age']);
위 내용은 Laravel Eloquent 스킬 공유 (예제 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!