尝试创建动态laravel查询字符串,但收到错误

时间:2016-06-07 13:25:41

标签: laravel builder

$string='->get()';
$data_asset=DB::table('assets').$string;
Object的{​​{1}}无法转换为class Illuminate\Database\Query\Builder

1 个答案:

答案 0 :(得分:0)

我有类似于你想要达到的目标。

在您的代码中,$ data_asset = DB :: table(' assets')返回一个QueryBuilder,它在后台使用您的查询参数构建一个字符串。

做你以后的事情:

    // Create a QueryBuilder instance with a table
    $q = DB::table('users');

    // I actually set this elsewhere, but for this example I've set it here
    $params = ['email'=>'joe.bloggs@example.com','toSql'=>true];

    // Use the QueryBuilder instance again, specifying a criteria
    $q->where('users.email', '=', $params['email']);

    if ( isset($params['toSql']) ):
        // Returns my query as it's full SQL string (minus parameters)
        return $q->toSql();
    else:
        // Returns a Collection
        return $q->get();
    endif;

这允许您构建动态QueryBuilder构建器。