laravel框架少见方法详解

2016-09-15 16:43
分类:编程  PHP  

1.whereDate() 方法

1 $q->where('created_at', '>=', date('Y-m-d').' 00:00:00'));

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

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

$q->whereDate('created_at', '=', date('Y-m-d'));

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

$q->whereDay('created_at', '=', date('d'));
$q->whereMonth('created_at', '=', date('m'));
$q->whereYear('created_at', '=', date('Y'));

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

 

 

2.wherePivot() 方法

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

class Company extends \Eloquent{...

public function memberApplies() { return $this->belongsToMany('App\User', 'user_company_applies') ->wherePivot('apply_status', UserCompanyApply::applyVerify) ->wherePivot('type', UserCompanyApply::TYPE_USER); }

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

好文要顶 收藏该文 我要举报
如果您觉得本文对你有用,不妨帮忙点个赞,或者在评论里给我一句赞美,小小成就都是今后继续为大家编写优质文章的动力!
上一篇:PHP类的自动载入机制
下一篇:一个获取google chrome扩展crx文件信息的PHP操作类

一起悦读网    Copyright © 2016    浙ICP备11048508号