Laravel查询将json数据输出为选择列表。如何修改现有代码以连接两个值
我的控制器中有一个预先存在的函数,它将运行一个简单的查询并返回model_名称和id,然后将结果作为json返回Laravel查询将json数据输出为选择列表。如何修改现有代码以连接两个值,laravel,Laravel,我的控制器中有一个预先存在的函数,它将运行一个简单的查询并返回model_名称和id,然后将结果作为json返回 public function getModel($id) { $models = DB::table('model')->where('man_id',$id)->pluck('model_name','id'); return json_encode($models); } 新的要求是在查询中包含一个名为model_num的附加列。计划是连接mod
public function getModel($id)
{
$models = DB::table('model')->where('man_id',$id)->pluck('model_name','id');
return json_encode($models);
}
新的要求是在查询中包含一个名为model_num的附加列。计划是连接model_name和model_num列
尝试了以下操作,但没有返回任何值,我得到了对json的404响应:
public function getModel($id)
{
$models = DB::table("model")->select("id","CONCAT(model_name, '-', model_num) as model")->where("man_id",$id)->pluck('model','id');
return json_encode($models);
}
我是否遗漏了一些明显的内容?您正在
select
中使用SQL函数,这些函数可能无法工作。您可以使用selectRaw
:
public function getModel($id)
{
$models = DB::table("model")
->selectRaw("id, CONCAT(model_name, '-', model_num) as model")
->where("man_id",$id)
->pluck('model','id');
return response()->json($models); // response()->json() is preferable
}
或者,您可以在PHP端进行连接:
public function getModel($id)
{
$models = DB::table("model")
->select("id", "model_name" "model_num")
->where("man_id",$id)
->get()
->mapWithKeys(function ($model) {
return [ $model->id => $model->model_name.'-'.$model->model_num ];
})
return response()->json($models);
}
公共函数getModel($id)
{
$models=DB::table('model')->其中('man_id',$id)->first();
$models->model=$models->model_name.-'.$models->model_num;
返回json_encode($models->pull('model','id');
}您将
pulk
更改为get
是故意的吗?为什么不将所有3个属性都删除,然后作为needed@apokryfos这不是故意的,不是。我已经修改了上面的代码。现在我从控制台得到了500个响应。也许资源是您提取json生成的一个选项。