前言
本文給大家介紹了Laravel 中一些常用的用法,額,說不定你就用上了。。。
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 = App/User::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('App/Phone'); }}$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 = App/User::first();$user->name; //John$user->name = "Peter"; //Peter$user->getOriginal('name'); //John$user->getOriginal(); //Original $user record
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。
新聞熱點
疑難解答
圖片精選