1 Вопрос: Laravel nova показывать поля только для супер админа

вопрос создан в Wed, May 8, 2019 12:00 AM

Привет, моя модель пользователя имеет этот код.

const ROLE_SUPER_ADMIN = "SUPER_ADMIN";
public function isSuperAdmin(){
        return $this->hasRole(self::ROLE_SUPER_ADMIN);
}

и таблица ролей имеет SUPER_ADMIN

И я должен создать ресурс для пользовательской таблицы,

public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),

            Gravatar::make(),

            Text::make(__('Name'),'name')
                ->sortable()
                ->rules('required', 'max:255'),

            Text::make(__('Surname'),'surname')
                ->sortable()
                ->rules('required', 'max:255'),

            Text::make(__('Mobile token'),'mobile_token'),

            Text::make(__('Email'))
                ->sortable()
                ->rules('required', 'email', 'max:254')
                ->creationRules('unique:users,email')
                ->updateRules('unique:users,email,{{resourceId}}'),

            Password::make(__('Password'))
                ->onlyOnForms()
                ->creationRules('required', 'string', 'min:6')
                ->updateRules('nullable', 'string', 'min:6'),
            //BelongsToMany::make(__("Businesses"),'businesses',Business::class),
            MorphToMany::make(__('Roles'), 'roles', \Vyuldashev\NovaPermission\Role::class),
            MorphToMany::make(__('Permissions'), 'permissions', \Vyuldashev\NovaPermission\Permission::class),
        ];

Мне нужно показать это поле Text::make(__('Mobile token'),'mobile_token'), только пользователям SUPER_ADMIN . И другие поля без ограничений. Есть способ сделать это?

    
0
1 ответ                              1                         

Вы можете сделать это так,

use App\Models\User as UserModel;


Text::make(__('Mobile token'),'mobile_token')
                ->canSee(function ($request) {
                    return $request->user()->hasRole(UserModel::ROLE_SUPER_ADMIN);
                }),
    
3
2019-05-08 16: 26: 57Z
источник размещен Вот