下面由laravel教程欄目給大家介紹Laravel中的10個用法,希望對需要的朋友有所幫助!
1. 在 find 方法中指定屬性
User::find(1, ['name', 'email']); User::findOrFail(1, ['name', 'email']);
2. Clone 一個 Model
用 replicate 方法可以克隆一個 Model
$user = User::find(1); $newUser = $user->replicate(); $newUser->save();
3. 判斷兩個 Model 是否相同
檢查兩個 Model 的ID是否相同用 is 方法
$user = User::find(1); $sameUser = User::find(1); $diffUser = User::find(2); $user->is($sameUser); // true $user->is($diffUser); // false;
4. 重新加載一個 Model
$user = User::find(1); $user->name; // 'Peter' // 如果 name 更新過,比如由 peter 更新為 John $user->refresh(); $user->name; // John
5. 加載新的 Model
$user = AppUser::first();$user->name; // John // $updatedUser = $user->fresh(); $updatedUser->name; // Peter $user->name; // John
6. 更新帶關聯的 Model
在更新關聯的時候,使用 push 方法可以更新所有 Model
class User extends Model{ public function phone() { return $this->hasOne('AppPhone'); }}$user = User::first(); $user->name = "Peter"; $user->phone->number = '1234567890'; $user->save(); // 只更新 User Model $user->push(); // 更新 User 和 Phone Model
7. 自定義軟刪除字段
Laravel 默認使用 deleted_at 作為軟刪除字段,我們通過以下方式將 deleted_at 改成 is_deleted
class User extends Model{ use SoftDeletes; * deleted_at 字段. * * @var string */ const DELETED_AT = 'is_deleted';}
或者使用訪問器
class User extends Model{ use SoftDeletes; public function getDeletedAtColumn(){ return 'is_deleted'; }}
8. 查詢 Model 更改的屬性
$user = User::first(); $user->name; // John $user->name = 'Peter'; $user->save(); dd($user->getChanges());// 輸出: [ 'name' => 'John', 'updated_at' => '...' ]
9. 查詢 Model 是否已更改
$user = User::first(); $user->name; // John $user->isDirty(); // false $user->name = 'Peter'; $user->isDirty(); // true $user->getDirty(); // ['name' => 'Peter'] $user->save(); $user->isDirty(); // false
getChanges() 與 getDirty() 的區別
getChanges() 方法用在 save() 方法之后輸出結果集
getDirty() 方法用在 save() 方法之前輸出結果集
10. 查詢修改前的 Model 信息
$user = AppUser::first(); $user->name; //John $user->name = "Peter"; //Peter $user->getOriginal('name'); //John $user->getOriginal(); //Original $user record
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END