首页 >php教程 >php手册 >laravel框架少见方法详解

laravel框架少见方法详解

WBOY
WBOY原创
2016-09-19 08:55:011174浏览

1.whereDate() 方法

<span style="color: #008080;">1</span> <span style="color: #800080;">$q</span>->where('created_at', '>=', <span style="color: #008080;">date</span>('Y-m-d').' 00:00:00'));

以前查数据时,直接用where条件来比值判断,但是格式就会有严格的要求,如果上面的代码 第三个参数 是 date('Y-m-d') 而不加 后面的00:00:00 这样在数据库里面就会找不到

而判断是否相等 也都是对格式严格的要求

<span style="color: #800080;">$q</span>->whereDate('created_at', '=', <span style="color: #008080;">date</span>('Y-m-d'));

现在用whereDate,laravel自带的方法,就会自动帮你进行日期格式处理,保证date与搜索的格式是匹配的。

<span style="color: #800080;">$q</span>->whereDay('created_at', '=', <span style="color: #008080;">date</span>('d'<span style="color: #000000;">));
</span><span style="color: #800080;">$q</span>->whereMonth('created_at', '=', <span style="color: #008080;">date</span>('m'<span style="color: #000000;">));
</span><span style="color: #800080;">$q</span>->whereYear('created_at', '=', <span style="color: #008080;">date</span>('Y'));

例如上面的代码,只搜索天数为某值的时候,用whereDay,会去数据库里搜索某一天与其匹配的值。

 

 

2.wherePivot() 方法

一般这个方法的活动场景,模型中

class Company extends \Eloquent{...
<br> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> memberApplies()
  {
    </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->belongsToMany('App\User', 'user_company_applies'<span style="color: #000000;">)
      </span>->wherePivot('apply_status', UserCompanyApply::<span style="color: #000000;">applyVerify)
      </span>->wherePivot('type', UserCompanyApply::<span style="color: #000000;">TYPE_USER);
  }</span>

wherePivot什么意思?,首先是company和user表,建立多关联的关系,关联表是user_company_applies

首先如果不加wherePivot,怎么显示

数据库这样

控制器:

显示3条数据,

也就是从中间表里找company_id为1对应的user_id的数据,在把user_id的值带到user表里去查询有哪些数据,也就是这3条,这是原来的多对多的流程

现在加上了wherePivot方法,无非是加上一个判断条件,获得多对多的数据之后,再去查找中间表里的apply_status和type字段,查找2个都为1的数据是那条,有则显示

数据库现在改成这样

2个值都为1了,看能不能查询出 user_id为2525的这条数据

开始测试

OK

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn