Laravel 4 动态数据库过滤器

标签 laravel laravel-4

我正在使用 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/

相关文章:

php - Laravel - 使用保留字命名模型

php - Laravel 邮件密件抄送

php - Laravel 如何使用 Eloquent 连接表并使用 where 条件?

php - Laravel 验证器的自定义服务提供者

php - Laravel Eloquent Query - 如何使用 DISTINCT 返回唯一值

laravel - 不同的值(value)观与采摘

php - 带 Stripe 的 Laravel 返回 "No such plan: 1 error"

Laravel - 从工作台/供应商包中读取文件

laravel - 如何在 Blade 标签模板中使用本地化?

laravel - 在 Laravel 应用程序中使用 NPM 包时遇到问题