Laravel,将属性附加到返回的json会追加整个对象

时间:2017-01-27 13:53:53

标签: laravel object attributes append

我有2个表appdirs==1.4.0 Django==1.10.5 django-autofixture==0.12.0 django-extensions==1.6.1 django-filter==1.0.1 djangorestframework==3.5.3 psycopg2==2.6.1 (父)和Customer(孩子),有一对多的关系

我想检索一个子记录,但也要从父(jobCode)中添加一个额外的字段。我的代码:

customerGuid

我希望只将父{q} $jobCodes=JobCode::all(); foreach ($jobCodes as $jobCode) { $jobCode['customerGuid']=$jobCode->customer->guid; // I also tried $jobCode->setAttribute('customerGuid',$jobCode->customer->guid); } return $jobCodes; 字段附加到每个guid对象并返回。但是返回整个jobCode父对象!

customer

2 个答案:

答案 0 :(得分:0)

因为你的return语句返回$jobCodes;,这是你在这里检索的整个表:$jobCodes=JobCode::all();

尝试将其放入循环中 echo '$jobCode'每次循环时看看输出是什么

答案 1 :(得分:0)

customer上达到关系$jobCode,您会自动延迟加载关系对象,该对象存储在$jobCode->customer属性中。

尝试这样做只需返回集合:

// return $jobCodes;

return $jobCodes->map(function($jobCode){
          $jobCode = $jobCode->toArray();
          unset($jobCode['customer']);
          return $jobCode;
       });