[英]How do i use one to many relationship within Laravel 8 Middleware?
我的數據庫中有一個Users
和Roles
表。 一個user
可以有多個roles
。 我正在使用 Laravel 8,我希望能夠在中間件中返回該user
所有roles
(我正在使用慣性.js - handleinertiarequest.php
)。
ID | 角色 | 用戶身份 |
---|---|---|
1 | 超級管理員 | 3 |
2 | 行政 | 3 |
3 | 用戶 | 3 |
ID | 名稱 |
---|---|
1 | 一些名字 |
2 | 別的名字 |
3 | 喬·博格斯 |
User.php
):public function userroles()
{
return $this->hasMany(Roles::class);
}
Roles.php
):public function user()
{
return $this->belongsTo(User::class);
}
HandleInertiaRequest.php
:public function share(Request $request)
{
return array_merge(parent::share($request), [
'auth' => function () use ($request) {
return [
'user' => $request->user() ? [
'id' => $request->user()->reference,
'first_name' => $request->user()->first_name,
'last_name' => $request->user()->last_name,
'role_staff' => \App\Models\Roles::select('id'),
] : null,
];
},
]);
}
Layout.vue
:{{ $page.props.auth.user.role_staff }}
因此,如果我以Joe Bloggs
( id = 3
) 身份登錄,我希望它返回3 roles
(如果使用id
,甚至只有 1 個)。 但這不會返回任何內容或顯示任何錯誤。 我在這里缺少什么? 謝謝
在用戶模式中使用這種關系方法:
public function userRoles()
{
$this->hasMany('App\Models\role_table_modal_name','user_id');
}
然后在控制器/中間件中調用您的用戶模式:
$ user_roles = User::find($id)->with('userRoles')->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.