介绍
这篇文章主要介绍了Laravel雄辩的使用技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
雄辩的ORM看起来是一个简单的机制,但是在底层,有很多半隐藏的函数和鲜为人知的方式来实现更多功能
1。递增和递减
要代替以下实现:
article 美元;=,文章:找到(article_id美元); 文章→美元read_count + +; 文章→美元拯救();
你可以这样做:
article 美元;=,文章:找到(article_id美元); 文章→美元增量(& # 39;read_count& # 39;);
以下这些方法也可以实现:
文章::找到(article_id美元)→增量(& # 39;read_count& # 39;); 文章::找(article_id美元)→增量(& # 39;read_count& # 39;,, 10);//, + 10 产品::找(produce_id美元)→减量(& # 39;股票# 39;);,//,1
2。先执行X方法,X方法执行不成功则执行Y方法
雄辩有相当一部分函数可以把两个方法结合在一起使用,例如“请先执行X方法,,X方法执行不成功则执行Y方法”。
实例1——<代码> findOrFail() 代码>:
要替代以下代码的实现:
user 美元;=,用户:找到($ id); if (! $ user), {, abort (404),}
你可以这样写:
user 美元;=,用户:findOrFail ($ id);
实例2——<代码> firstOrCreate() 代码>:
要替代以下代码的实现:
user 美元;=,用户::,(& # 39;电子邮件# 39;,,邮件美元)→第(); if (! $ user), { 用户::创建([才能 ,,,& # 39;电子邮件,,=在美元的电子邮件 )才能); }
这样写就可以了:
user 美元;=,用户:firstOrCreate((& # 39;电子邮件,,=祝辞,$电子邮件]);
3。模型的引导()方法
在一个有说服力的模型中,有个神奇的地方,叫<代码>引导()代码>,在那里,你可以覆盖默认的行为:
class User extends 模型 { ,,,public static function 引导() ,,,{ ,,,,,,,父母:引导(); ,,,,,,,静态::更新(函数(模型) ,,,,,,,{ ,,,,,,,,,,,//,写点日志啥的 ,,,,,,,,,,,//,覆盖一些属性,类似这样,模型→美元something =,变换(美元); ,,,,,,,}); ,,,} }
在创建模型对象时设置某些字段的值,大概是最受欢迎的例子之一了。一起来看看在创建模型对象时,你想要生成UUID字段该怎么做。
public static function 引导() { 父:才能引导(); 自我才能::创建(function (模型),{ ,,,美元模型→uuid =, (string) Uuid:生成(); ,,}); }
4。带条件与排序的关联关系
定义关联关系的一般方式:
public function 用户(),{ ,,,return $ this→hasMany(& # 39;应用\用户# 39;); }
你知道吗?也可以在上面的基础上增加<代码>,代码>或者<代码> orderBy> 代码?\
举个例子,如果你想关联某些类型的用户,同时使用邮件字段排序,你可以这样做:
public function approvedUsers (), { ,,,return $ this→hasMany(& # 39;应用\用户# 39;)→地方(& # 39;批准# 39;,,1)→orderBy(& # 39;电子邮件# 39;); }
5。模型特性:时间,追加等
雄辩的模型有些参数,使用类的属性形式。最常用的是:
class User extends Model { ,,,protected table 美元;=,& # 39;用户# 39;; ,,,protected fillable 美元;=,(& # 39;电子邮件# 39;,,& # 39;密码# 39;];,//,可以被批量赋值字段,如,用户:创建(),新增时,可使用字段 ,,,protected dates 美元;=,(& # 39;created_at # 39;,, & # 39; deleted_at& # 39;];,//,需要被碳维护的字段名 ,,,protected appends 美元;=,(& # 39;field1 # 39;,, & # 39; field2 # 39;];,//, json返回时,附加的字段 }
不只这些,还有:
protected primaryKey 美元;=,& # 39;uuid # 39;,,//,更换主键 public incrementing 美元;=,假的,,//,设置,不自增长 protected perPage 美元;=,25岁,,//,定义分页每页显示数量(默认15) const CREATED_AT =, & # 39; created_at # 39;; const UPDATED_AT =, & # 39; updated_at& # 39;,,//重写,时间字段名 public timestamps 美元;=,假的,,//,设置不需要维护时间字段Laravel雄辩的使用技巧有哪些