как передать данные модели в класс политики из блейд-файла - PullRequest
0 голосов
/ 26 мая 2019

Здравствуйте, я столкнулся с проблемой laravel, gate, я пытаюсь передать данные класса Model в функцию gate и проверить некоторые данные класса модели. но проблема в том, что из блейд-файла нельзя передать модель в строб-функцию.

это моя модель, AuthServiceProvide и просмотр кода файла.

view.blade.php

 @can('create-role',permission::class)
                 <div class="text-center">
                    <a href="" class="btn btn-success btn-rounded mb- 
                     4">Add</a>
                    </div>
                @endcan

AuthServiceProvider.php

    Gate::define('create-role', function ( $permissionrole) {
    $id = Auth::user()->id;
         $permissionid = 1;   

        foreach ($permissionrole as $value) {          
      if($value->user_id == $id && $value->permisions_id == $permissionid)
            {
                return  true;
            }
            return false;
        }
        });  
}

Файл модели

  protected $table = 'permissions';
  protected $primaryKey  = 'permission_id';
  protected $fillable = [
  name','for',]; 
  public $incrementing = false;

1 Ответ

0 голосов
/ 27 мая 2019

вы должны передать модель permission вместо permission::class в директиве @can; тогда у вас есть доступ к нему:

      Gate::define('create-role', function ( $permission) {
      $id = Auth::user()->id;
      $permissionid = 1;

      //your checking goes here
      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...