Laravel雄辩的ORM小组在哪里 [英] Laravel eloquent ORM group where
本文介绍了Laravel雄辩的ORM小组在哪里的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将以下查询转换为Laravel 4雄辩的ORM?
How do I convert the following query to Laravel 4 eloquent ORM?
select * from table where ((starttime <= ? and endtime >= ?) or (starttime <= ? and endtime >= ?) or (starttime >= ? and endtime <= ?))
推荐答案
像这样:
<?php
$results = DB::table('table')
->where(function($query) use ($starttime,$endtime){
$query->where('starttime', '<=', $starttime);
$query->where('endtime', '>=', $endtime);
})
->orWhere(function($query) use ($otherStarttime,$otherEndtime){
$query->where('starttime', '<=', $otherStarttime);
$query->where('endtime', '>=', $otherEndtime);
})
->orWhere(function($query) use ($anotherStarttime,$anotherEndtime){
$query->where('starttime', '>=', $anotherStarttime);
$query->where('endtime', '<=', $anotherEndtime);
})
->get();
Have a look at the documentation for even more cool stuff you can do with Eloquent and the Query Builder.
// 甚至将整个where子句都用大括号括起来(就像您的问题一样),您可以执行以下操作:
// To even wrap the whole where-clause in braces (like it is in your question), you can do this:
<?php
$results = DB::table('table')
//this wraps the whole statement in ()
->where(function($query) use ($starttime,$endtime, $otherStarttime,$otherEndtime, $anotherStarttime,$anotherEndtime){
$query->where(function($query) use ($starttime,$endtime){
$query->where('starttime', '<=', $starttime);
$query->where('endtime', '>=', $endtime);
});
$query->orWhere(function($query) use ($otherStarttime,$otherEndtime){
$query->where('starttime', '<=', $otherStarttime);
$query->where('endtime', '>=', $otherEndtime);
});
$query->orWhere(function($query) use ($anotherStarttime,$anotherEndtime){
$query->where('starttime', '>=', $anotherStarttime);
$query->where('endtime', '<=', $anotherEndtime);
});
})
->get();
这篇关于Laravel雄辩的ORM小组在哪里的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文