前言

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对www.887551.com的支持。