Laravel中10个有用的用法小结
前言
本文给大家介绍了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
classUserextendsModel { publicfunctionphone() { return$this->hasOne('App\Phone'); } } $user=User::first(); $user->name="Peter"; $user->phone->number='1234567890'; $user->save();//只更新UserModel $user->push();//更新User和PhoneModel
7.自定义软删除字段
Laravel默认使用deleted_at作为软删除字段,我们通过以下方式将deleted_at改成is_deleted
classUserextendsModel { useSoftDeletes; *deleted_at字段. * *@varstring */ constDELETED_AT='is_deleted'; }
或者使用访问器
classUserextendsModel { useSoftDeletes; publicfunctiongetDeletedAtColumn(){ 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$userrecord
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。