【发布时间】:2015-01-30 21:46:06
【问题描述】:
我正在尝试在 Laravel 4 中创建一个更高级的查询,它由 AND 和 OR where 子句组成,格式如下:
(('a','=','1') OR ('b','=','s') OR ('c','=','3')) AND (('d','=','1') OR ('e','=','s') OR ('f','=','3'))
问题是我正在动态生成这些查询,基于用户通过某些表单应用的某些过滤器。这意味着查询可以具有以下格式:
a AND b
还有这种格式:
(a OR b OR c) AND (d OR e OR f)
还有这个:
(a OR b) AND c AND (d OR e) AND f
我将 where 子句生成为字符串,但我无法将此变量添加到方法调用中。
例子:
$whereclause = where(function($query){$query->where('colorgrade','like','41-2');})->where(function($query){$query->where('datetime','>','2014-11-05');})
$result = $gin->bales()->$whereclause->take(1000)->get();
我得到的错误如下:
未定义属性:Illuminate\Database\Eloquent\Relations\HasMany::$where(function($query){$query->where('colorgrade','like','41-2');})- >where(function($query){$query->where('datetime','>','2014-11-05');})
如何将生成的 where 子句(字符串变量)传递给上述链接函数?
【问题讨论】:
标签: php laravel laravel-4 where