Php 如何在laravel中生成动态mysql查询?
我想让用户选择他们想看到哪些字段,哪些不想看到。这是我的API URI,是一个get请求Php 如何在laravel中生成动态mysql查询?,php,laravel,Php,Laravel,我想让用户选择他们想看到哪些字段,哪些不想看到。这是我的API URI,是一个get请求 /api/v1/admin/users/1?fields=email,id 这是我的代码: if (isset($request->fields)) { $temp = null; $items = explode(',', $request->fields); foreach ($items as $item) {
/api/v1/admin/users/1?fields=email,id
这是我的代码:
if (isset($request->fields)) {
$temp = null;
$items = explode(',', $request->fields);
foreach ($items as $item) {
$temp = $temp . "'" . $item . "',";
}
$fields = trim($temp, ',');
$query = User::query();
$query->select($resourceOptions['fields']);
$query->get();
}
但我有一个错误:
"SQLSTATE[42S22]: Column not found: 1054 Unknown column ''email','id'' in 'field list' (SQL: select `'email','id'` from `users` where `users`.`deleted_at` is null)"
任何帮助(或者如果有人能给我指出一个好的教程)都将不胜感激!
谢谢在laravel中,您可以使用
where()
子句添加查询。但对你来说。这不是必需的
运行这个
if (isset($request->fields)) {
$users = User::select(DB::raw($request->fields))->get();
dd($users);
}
在laravel中,可以使用
where()
子句添加查询。但对你来说。这不是必需的
运行这个
if (isset($request->fields)) {
$users = User::select(DB::raw($request->fields))->get();
dd($users);
}
进口
use Illuminate\Support\Facades\DB;
及
进口
use Illuminate\Support\Facades\DB;
及
$resourceOptions['fields']
从何而来
您可以在select
功能中使用项目数组,如下所示:
if (isset($request->fields)) {
$items = explode(',', $request->fields);
$query = User::query();
$query->select($items);
$query->get();
}
还是像这样
if (isset($request->fields)) {
$query = User::query()->select(explode(',', $request->fields))->get();
}
$resourceOptions['fields']
从何而来
您可以在select
功能中使用项目数组,如下所示:
if (isset($request->fields)) {
$items = explode(',', $request->fields);
$query = User::query();
$query->select($items);
$query->get();
}
还是像这样
if (isset($request->fields)) {
$query = User::query()->select(explode(',', $request->fields))->get();
}
@Maryam让我知道它是否有用。我测试过,但没有true@Maryam现在试试。我认为他把请求传错了方向<代码>'email','id'看看这个。@Maryam让我知道它是否有用。我测试过,但没有true@Maryam现在试试。我认为他把请求传错了方向<代码>'email','id'看看这个。