获取资源laravel 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

我在cards表中有一个名为(service_id)的列,它包含和services表相关的数组id

如何显示ID的名称

资源api代码:

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')
如何修复数据库?您的建议是什么?