Я использую таблицы данных 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();
}
}
Ожидаемое поведение:
Таблица пользователей со строками на основе роли пользователя
Фактическое поведение:
Отображение каждого пользователя в базе данных.