我正在尝试将数据透视数据返回到资源。数据透视表有效,我可以添加和删除预期的条目,但我无法获得 ActivityResource 中返回的 user_id ......在 Laravel 文档中看起来很简单,我错过了什么吗?
// Activity.php
class Activity extends Model
{
public function members()
{
return $this->belongsToMany('App\User', 'activity_user', 'user_id', 'activity_id')->withPivot('activity_id','user_id')->withTimestamps();
}
}
// User.php
class User extends Authenticatable
{
public function joinedactivities()
{
return $this->belongsToMany('App\Activity');
}
}
在我的 ActivityController 中,我想返回一个新创建的具有“急切加载”关系的 ActivityResource
// ActivityController
public function show($id)
{
$activity = Activity::with('members')->findOrFail($id);
/* foreach ($activity->members as $user) {
echo $user->id . " "; // With this I can actually see the right ids
}
return;*/
return new ActivityResource($activity);
}
活动资源:
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'attendees' => $this->whenPivotLoaded('activity_user', function () {
return $this->pivot->user_id;
}),
];
}
我没有收到任何错误,而是没有返回参加者字段。我尝试了很多东西,为此苦苦挣扎。非常感谢帮助。我正在使用 Laravel 6。