尝试创建动态 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 构建器。
$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 构建器。