当前位置:首页 > CMS教程 > 其它CMS > 列表

Laravel中10个有用的用法小结

发布:smiling 来源: PHP粉丝网  添加日期:2022-04-20 10:52:38 浏览: 评论:0 

这篇文章主要介绍了Laravel中10个有用的用法小结,都是一些比较常用的一些方法,有感兴趣的同学可以学习下。

本文给大家介绍了Laravel 中一些常用的用法

1. 在 find 方法中指定属性

User::find(1, ['name', 'email']);

User::findOrFail(1, ['name', 'email']);

2. Clone 一个 Model

用 replicate 方法可以克隆一个 Model

  1. $user = User::find(1); 
  2. $newUser = $user->replicate(); 
  3. $newUser->save(); 

3. 判断两个 Model 是否相同

检查两个 Model 的ID是否相同用 is 方法

  1. $user = User::find(1); 
  2. $sameUser = User::find(1); 
  3. $diffUser = User::find(2); 
  4. $user->is($sameUser); // true 
  5. $user->is($diffUser); // false; 

4. 重新加载一个 Mode

  1. $user = User::find(1); 
  2. $user->name; // 'Peter' 
  3. // 如果 name 更新过,比如由 peter 更新为 John 
  4. $user->refresh(); 
  5. $user->name; // John 

5. 加载新的 Model

  1. $user = User::find(1); 
  2. $user->name; // 'Peter' 
  3. // 如果 name 更新过,比如由 peter 更新为 John 
  4. $user->refresh(); 
  5. $user->name; // John 

6. 更新带关联的 Model

在更新关联的时候,使用 push 方法可以更新所有 Model

  1. class User extends Model 
  2.  public function phone() 
  3.  { 
  4.  return $this->hasOne('App\Phone'); 
  5.  } 
  6. $user = User::first(); 
  7. $user->name = "Peter"
  8. $user->phone->number = '1234567890'
  9. $user->save(); // 只更新 User Model 
  10. $user->push(); // 更新 User 和 Phone Model 

7. 自定义软删除字段

Laravel 默认使用 deleted_at 作为软删除字段,我们通过以下方式将 deleted_at 改成 is_deleted

  1. class User extends Model 
  2.  use SoftDeletes; 
  3.  * deleted_at 字段. 
  4.  * 
  5.  * @var string 
  6.  */ 
  7.  const DELETED_AT = 'is_deleted'

或者使用访问器

  1. class User extends Model 
  2.  use SoftDeletes; 
  3.    
  4.  public function getDeletedAtColumn(){ 
  5.  return 'is_deleted'
  6.  } 

8. 查询 Model 更改的属性

  1. $user = User::first(); 
  2. $user->name; // John 
  3. $user->name = 'Peter'
  4. $user->save(); 
  5.    
  6. dd($user->getChanges()); 
  7. // 输出: 
  8.  'name' => 'John'
  9.  'updated_at' => '...' 

9. 查询 Model 是否已更改

  1. $user = User::first(); 
  2. $user->name;  // John 
  3. $user->isDirty(); // false  
  4. $user->name = 'Peter';  
  5. $user->isDirty(); // true 
  6. $user->getDirty(); // ['name' => 'Peter'] 
  7. $user->save();   
  8. $user->isDirty(); // false 

getChanges() 与 getDirty() 的区别

getChanges() 方法用在 save() 方法之后输出结果集

getDirty() 方法用在 save() 方法之前输出结果集

10. 查询修改前的 Model 信息

  1. $user = App\User::first(); 
  2. $user->name;   //John 
  3. $user->name = "Peter";  //Peter 
  4. $user->getOriginal('name'); //John 
  5. $user->getOriginal();  //Original $user record

Tags: Laravel用法小结

分享到:

相关文章