У меня есть эти пользовательские таблицы, в которые я внедрил таблицы данных yajra, но я не нахожу конкретного решения о том, как скрыть столбцы на основе аутентификации пользователя.
Я сослался на этот ответ, но в нем не было указано, как реализовать его на стороне javascript. Невозможно скрыть столбцы в оракуле таблиц данных yajra
также из документации на сайте yajra Laravel они просят поставить visible:false, чтобы скрыть столбцы, это правда, но я хочу скрыть/показать на основе статуса пользователя, который в данный момент входит в систему.
пользователи/index.blade.php:
<table id="userDatatable" class="table table-bordered nowrap">
<thead>
<tr>
<th class="desktop tablet phone">{{ __('Name') }}</th>
<th class="desktop">{{ __('Contact') }}</th>
<th class="desktop tablet phone">{{ __('Status') }}</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
пользователи/index.js:
$('#userDatatable').DataTable({
scrollX: true,
autoWidth: true,
bSort: false,
pageLength: 50,
lengthMenu: [
[50, 100, -1],
['50', '100', 'Show all']
],
ajax: {
url: "users",
data: {id: id},
},
columns: [
{data: 'name', name: 'name'},
if($('#userStatus').val() == 'active'){ <-------- I want to show only if this auth user is active
{data: 'contact', name: 'contact'},
}
{data: 'status', name: 'status'},
]
})
UserController.php:
public function index(Request $request)
{
$users = User::get();
if($request->ajax())
{
return datatables()
->eloquent($users)
->addColumn('name', function($user){
return $user->name;
})
->addColumn('contact', function($user){
return $user->contact;
})
->addColumn('status', function($user){
return $user->status;
})
->make(true);
}
$users = User::orderBy('name', 'asc')->get();
return view('users.index');
}