Laravel雄辩的使用技巧有哪些

  介绍

这篇文章主要介绍了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雄辩的使用技巧有哪些