在 Laravel Backpack 中需要列出具有特定角色的用户
In Laravel Backpack need to list users with specific role
请查看下面的详细信息,其中我有一个组织模块。我可以在其中创建一个组织,其所有者的角色为“组织”。
The third input is a dropdown where we need to select the user with role "organization"
protected function addOrganizationFields(){
$this->crud->addFields([
[
'name' => 'name',
'label' => __('Organization Name'),
'type' => 'text',
],
[
'name' => 'billing_information',
'label' => __('Billing Information'),
'type' => 'textarea',
],
[
'name' => 'owner_id',
'label' => __('Organization Owner'),
'type' => 'select2',
'entity' => 'owners_list',
'attribute' => 'name',
'model' => "App\User",
]
]);
}
我在组织模块中写了这段代码。
public function owners_list(){
return User::whereHas('roles', function($q){
$q->where('name', 'member');
})->get();
}
我在组织模型关系中写了这个。
但在下拉列表中显示所有用户的列表。
谁能告诉我要做什么。
您可以使用文档中提到的“选项”属性从 select2 字段中删除选项 - https://backpackforlaravel.com/docs/4.1/crud-fields
[
'name' => 'owner_id',
'label' => __('Organization Owner'),
'type' => 'select2',
'entity' => 'owners_list',
'attribute' => 'name',
'model' => "App\User",
// add something like this
'options' => (function ($query) {
return $query->whereHas('roles', function($q){
$q->where('name', 'member');
})->get();
}), // force the related options to be a custom query, instead of all(); you can use this to filter the results show in the select
]
请查看下面的详细信息,其中我有一个组织模块。我可以在其中创建一个组织,其所有者的角色为“组织”。 The third input is a dropdown where we need to select the user with role "organization"
protected function addOrganizationFields(){
$this->crud->addFields([
[
'name' => 'name',
'label' => __('Organization Name'),
'type' => 'text',
],
[
'name' => 'billing_information',
'label' => __('Billing Information'),
'type' => 'textarea',
],
[
'name' => 'owner_id',
'label' => __('Organization Owner'),
'type' => 'select2',
'entity' => 'owners_list',
'attribute' => 'name',
'model' => "App\User",
]
]);
}
我在组织模块中写了这段代码。
public function owners_list(){
return User::whereHas('roles', function($q){
$q->where('name', 'member');
})->get();
}
我在组织模型关系中写了这个。 但在下拉列表中显示所有用户的列表。 谁能告诉我要做什么。
您可以使用文档中提到的“选项”属性从 select2 字段中删除选项 - https://backpackforlaravel.com/docs/4.1/crud-fields
[
'name' => 'owner_id',
'label' => __('Organization Owner'),
'type' => 'select2',
'entity' => 'owners_list',
'attribute' => 'name',
'model' => "App\User",
// add something like this
'options' => (function ($query) {
return $query->whereHas('roles', function($q){
$q->where('name', 'member');
})->get();
}), // force the related options to be a custom query, instead of all(); you can use this to filter the results show in the select
]