您好,欢迎访问一九零五行业门户网

laravel框架少见方法详解

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
其它类似信息

推荐信息