我正在使用 Laravel 4 进行简单的编程,我想使用 Laravel 数据库流畅功能来过滤数据库结果,但我陷入了困境。
我有一个过滤器需要传递给选择查询:
$filter = Input::get( 'filter' );
$txtfilter = Input::get( 'txtfilter' );
$wh = '';
switch ($filter) {
case 'hostname':
$wh = "->where('hostname',$txtfilter)";
case 'error':
$wh = "->where('error',$txtfilter)";
default:
$wh = "";
}
基本上我想将上面的$wh
添加到下面的查询
$logs = DB::table('sys_logs')
->orderBy('created_at', 'DESC')
$wh
->paginate(200);
我该怎么做?
tq
最佳答案
对于您给我们的示例来说,这可能是可行的:
$query = DB::table('sys_logs')->orderBy('created_at', 'DESC');
$filter = Input::get( 'filter' );
$txtfilter = Input::get( 'txtfilter' );
if ($filter, in_array('hostname','error'))
{
$query->where($filter, $txtFilter);
}
return $query->paginate(200);
但你也可以做类似的事情
foreach(Input::all() as $key => $value)
{
$query->where($key, $value);
}
关于Laravel 4 动态数据库过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25788982/