我正试图获得关系关系的属性,但我遇到了问题,我不知道这是怎么做的......
控制器:
public function user($id) {
$user = UserProfile::where('friendly_url', '=', $id)->with('user', 'shares.links')->first();
foreach($user->getRelation('shares')->pluck('links') as $link) {
//HERE IS TO RETURN LINK ATTRIBUTES, EXAMPLE $link->id
dd($link);
}
}
DD($链路)
Collection {#309 ▼
#items: array:1 [▼
0 => Link {#314 ▼
#attributes: array:14 [▼
"id" => 1
"title" => "Crianças índigo nascem em 2018"
]
返回$ link-> id
Exception
Property [id] does not exist on this collection instance.
答案 0 :(得分:1)
您正在获取响应链接的集合,因此您需要再次迭代才能获得属性。
foreach($user->getRelation('shares')->pluck('links') as $link) {
$linksAttr = $link->map(function($li) {
retrun [
//here you can return link attributes
'linkId' => $li->id,
'linkTitle'=>$li->title
];
});
dd($linksAttr);
}
}
答案 1 :(得分:0)
由于$link
是一个集合,因此请使用first()
获取对象:
dd($link->first()->id);