У меня есть список пользователей, в которых есть четыре разных типа пользователей («SA», «Admin», «User», «Candidate»), и я отображаю их с использованием данных yajrah, и я пытаюсь сделать следующее: когда SA авторизирован, в списке должны быть только Admin, User и Candidate.
Аналогично, когда администратор входит в систему, список должен возвращать только Кандидат и Пользователи.
Мой интерфейс: Интерфейс
Я не знаю, как передать запрос для этого
мои данные пользователей
class UsersDataTable extends DataTable
{
/**
* Build DataTable class.
*
* @param mixed $query Results from query() method.
* @return \Yajra\DataTables\DataTableAbstract
*/
public function dataTable($query)
{
return datatables()
->eloquent($query)
->addColumn('action', function($data){
$button = '<a href="'.route('user.edit',$data->id).'"><button type="submit" name="edit" id="'.$data->id.'"
class="edit btn btn-primary btn-sm">Edit</button></a>';
$button .= '<a><form action="user/'.$data->id.'
" method="post">
'.csrf_field().'
'.method_field('DELETE').'
<button type="submit" name="delete" id="'.$data->id.'"
class="delete btn btn-danger btn-sm">Delete</button></form></a>';
return $button;
});
}
/**
* Get query source of dataTable.
*
* @param \App\User $user
* @return \Illuminate\Database\Eloquent\Builder
*/
public function query(User $user)
{
return $user->newQuery();
}
/**
* Optional method if you want to use html builder.
*
* @return \Yajra\DataTables\Html\Builder
*/
public function html()
{
return $this->builder()
->setTableId('user')
->columns($this->getColumns())
->minifiedAjax()
->dom('frltip');
}
/**
* Get columns.
*
* @return array
*/
protected function getColumns()
{
return [
Column::make('id'),
Column::make('name'),
Column::make('email'),
Column::make('usertype'),
Column::make('created_at'),
Column::make('action'),
];
}
Мой контроллер:
/**
* Display a list of the users
*
* @param \App\DataTable\UsersDataTable $dataTable
* @return \Illuminate\View\View
*/
public function index(UsersDataTable $dataTable)
{
return $dataTable->render('users.index');
}
моя миграция:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->softemail();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->enum('usertype', ['super admin','admin', 'user','candidate']);
$table->rememberToken();
$table->timestamps();
});
}
Любой помощь будет оценена.