我已经为Laravel 8创建了我的第一个composer包,它提供了一个用户组模型和一些路由。其中有几个是
POST | api/v1/usergroups | usergroups.create | ITGuy1990\Usergroups\Controllers\UsergroupController@create | api
GET|HEAD | api/v1/usergroups | usergroups.index | ITGuy1990\Usergroups\Controllers\UsergroupController@index | api
GET|HEAD | api/v1/usergroups/{usergroup} | usergroups.show | ITGuy1990\Usergroups\Controllers\UsergroupController@show | api
PATCH | api/v1/usergroups/{usergroup} | usergroups.update | ITGuy1990\Usergroups\Controllers\UsergroupController@update | api
DELETE | api/v1/usergroups/{usergroup} | usergroups.destroy | ITGuy1990\Usergroups\Controllers\UsergroupController@destroy | api到目前为止一切都很好。但现在最难的部分是。在包之外,在我的Laravel应用程序中,我将添加另一个雄辩模型。TodoList模型。现在,我想在UserGroup模型和TodoList模型之间建立“一对多”关系。我希望api/v1/usergroups/{usergroup}路由还返回与UserGroup模型相关联的TodoList模型。我想我可能想要添加一个查询参数来选择要包括的关系,如下所示:http://localhost:8000/api/v1/usergroups/1?include=todolists
但是,如何使usergroups.show路由包含不属于usergroups包的关系呢?我可以,但不想在usergroups包中包含todolist模型。因为我希望usergroups包只对用户组负责,对吗?
谢谢你提前帮了我。
ITGuy1990
发布于 2021-10-29 06:55:15
如果我没理解错的话,你是Laravel的新手。如果您想要显示连接到usergroups.show路由上的每个用户组的todolist,您可以通过建立一个模型关系来实现。如果每个组都有一个以上的todolist,并且每个todolist都属于一个以上的组,这是一个多对多的关系:
在UserGroup模型中:
public function todolist()
{
return $this->hasMany(ToDoList::class);
}在ToDoList模型中:
public function usergroups()
{
return $this->belongsToMany(UserGroup::class);
}在控制器中:
$usergroups = UserGroup::with('todolist')->get();在刀片中:
@foreach($usergroups->todolist as $todolist)
{{$todolist->name}}
@endforeachhttps://stackoverflow.com/questions/69760870
复制相似问题