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

Laravel中10个有用的用法小结

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-21 17:23:14 浏览: 评论:0 

这篇文章主要给大家总结介绍了关于Laravel中10个有用的用法,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。

前言

本文给大家介绍了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 方法

  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. 重新加载一个 Model

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

5. 加载新的 Model

  1. $user = App\User::first(); 
  2. $user->name;    // John 
  3. // 
  4. $updatedUser = $user->fresh();  
  5. $updatedUser->name;  // Peter 
  6. $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用法小结

分享到: