获取资源laravel api中的数组名称?
我在cards表中有一个名为(service_id)的列,它包含和services表相关的数组id 如何显示ID的名称 资源api代码:获取资源laravel api中的数组名称?,laravel,api,Laravel,Api,我在cards表中有一个名为(service_id)的列,它包含和services表相关的数组id 如何显示ID的名称 资源api代码: public function toArray($request) { return [ 'key'=>$this->id, 'user name'=>$this->showNameOfUser->name, 'Jobs'=> $this->service_id
public function toArray($request)
{
return [
'key'=>$this->id,
'user name'=>$this->showNameOfUser->name,
'Jobs'=> $this->service_id,
'numPhone'=>$this->numPhone,
'location'=>$this->location,
];
}
获取api卡的结果:
{
"key": 4,
"user name": "test",
// want convert this ids to name of service
"Jobs": [
"1",
"2",
"4"
],
"numPhone": 750123456,
"location": "zakho"
}
这是一个糟糕的数据库设计,但现在你可以开始了
'Jobs'=>App\Service::其中('id',$this->Service\u id)->get()->pull('name'),
这将查询服务表中与您的ID数组[1,2,4]匹配的任何ID,并返回数组中的名称您需要在模型中设置关系。更多信息@KeepoN已经做了,但对于许多ID如何?对于我尝试的信息,有很多关系但不起作用:(@KeepoN公共函数showNameOfServices(){return$this->hasMany('App\Services','id','service_id');}我得到的错误是:属性[name]在此集合实例上不存在。$this->showNameOfServices()的结果将是一个包含服务模型的集合,而不是名称。您需要迭代此集合并获取名称。还有一个方便的方法来完成此操作。
$this->showNameOfServices->pull('name')
如何修复数据库?您的建议是什么?