欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Laravel中10个有用的用法小结

程序员文章站 2022-11-15 22:32:46
前言 本文给大家介绍了laravel 中一些常用的用法,额,说不定你就用上了。。。 1. 在 find 方法中指定属性 user::find(1, ['...

前言

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

总结

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