SaM*_*eEr 6 laravel laravel-query-builder laravel-5.3 laravel-eloquent
我想要做的是,我想根据请求的参数在laravel 5.3中进行动态查询,因此在请求中我将获得列名,然后过滤该查询,我不知道我想要处理数据的表.所以,我的问题是如何决定该查询的表?或者我应该将表和各列存储在一个数据库的表中,并将请求的参数与该表匹配,以便获取表名并能够输入该查询?
但我认为这将花费我的处理费用?所以这就是我发布这个问题的原因.请帮助我找到符合我的动态查询要求的最佳方案?
更新
请求将是这样的
{
"col": ['fname', 'lname'],
"offset": 1,
"limit": 25,
"order": [ASC, fname, lname],
"filter": [
{
"col": "id",
"op": "=",
"val": 8
}
]
}
Run Code Online (Sandbox Code Playgroud)
所以这是我的请求,表名和相关列在一个表中.
只需使用查询构建器.
$query = DB::table($tableName);
// ...some logic...
foreach ($filters as $filter) {
$query->where($filter['col'], $filter['op'], $filter['val']);
}
// ...more logic...
if (isset($limit)) {
$query->limit($limit);
}
if (isset($columns)) {
// get desired columns
$records = $query->get($columns);
} else {
$records = $query->get();
}
Run Code Online (Sandbox Code Playgroud)