laravel: как использовать multi 'can' в маршруте? - PullRequest
0 голосов
/ 17 октября 2019

laravel 5: 8
Я создаю роли, разрешения, access_role, role_user

И в AuthServiceProvider:

public function boot()
{
    $this->registerPolicies();

    $permissions = $this->getPermissions();
    if ($permissions) {
        foreach ($permissions as $permission) {
            Gate::define($permission->name, function ($user) use ($permission) {
                return $user->hasRole($permission->roles);
            });
        }
    }
}

protected function getPermissions()
{
    if (\Schema::hasTable('permissions')) {
        return Permission::with('roles')->get();
    }
    return null;
}

Я пытаюсь использовать can в маршруте:

$can = 'can:manage_global';
Route::get('/create', 'ProductController@create')->middleware($can)->name('panel.product.create');

это работает.

Но как можно использовать multi can?

Я пробую это:

$can = 'can:manage_global,manage_articles';

, но это работает только для manage_global notmanage_articles.

1 Ответ

0 голосов
/ 17 октября 2019
$can = 'can:manage_global|manage_articles';

Попробуйте это с вашим желаемым состоянием, я применил |(ИЛИ) между условиями обоих разрешений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...