尝试创建动态 laravel 查询字符串但出现错误

Trying to Create dynamic laravel query string but getting error

$string='->get()';
$data_asset=DB::table('assets').$string;

Object of class Illuminate\Database\Query\Builder 无法转换为 string

我得到了与您想要实现的类似的结果。

在您的代码中,您的 $data_asset=DB::table('assets') returns 一个 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 构建器。