Я хочу фильтровать строки в таблицах данных yajrabox на основе условия, как я могу это сделать? - PullRequest
0 голосов
/ 17 июня 2020

Я использую таблицы данных yajrabox:

composer. json:

"require": {
"some/other/packages": "~0.1"
"yajra/laravel-datatables": "^1.5",
        "yajra/laravel-datatables-oracle": "~9.0",
}

Используемый код модели пользователя:

class User extends Authenticatable implements MustVerifyEmail, HasMedia
{
    use Notifiable, Impersonate, HasRoles, InteractsWithMedia;

    public function moradas(){
        return $this->hasMany('App\Morada');
    }

    public function atestados(){
        return $this->belongsToMany('App\Atestado','atestado_user')->withPivot('tipo','created_at','updated_at');
    }

    public function pessoas(){
        return $this->hasMany('App\Pessoa');
    }

    public function rendimentos(){
        return $this->hasMany('App\Rendimento');
    }

    public function declaracaos(){
        return $this->hasMany('App\Declaracao');
    }

    public function despesas(){
        return $this->hasMany('App\Despesa');
    }
}

Я хочу отфильтровать строки, которые я буду отображать в зависимости от условия, например:

public function query(User $model)
{
    if(auth()->user()->hasRole('User')){
        return $model->newQuery()->whereHas('roles',  function(Builder $q)
        {
            $q->where('name', '=', 'Funcionário')
               ->where('name', '=', 'Admin');
        });
    }elseif(auth()->user()->hasRole('Funcionário')){
        return $model->newQuery();
    }
}

Ожидаемое поведение:

Таблица пользователей со строками на основе роли пользователя

Фактическое поведение:

Отображение каждого пользователя в базе данных.

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