我正在使用 yajrda datatables oracle 包来管理数据。我正在为数据表使用服务实现。我面临的问题是我无法隐藏数据表中的某些列。
我想隐藏列名 ID_Centro 但它没有发生。这是该类的代码。
<?php
namespace App\DataTables;
use App\Model\Theater;
use Yajra\Datatables\Services\DataTable;
class TheaterDataTable extends DataTable
{
/**
* Build DataTable class.
*
*/
public function dataTable()
{
return $this->datatables
->eloquent($this->query())
->addColumn('action',function ($theater){
if (auth()->user()->hasPermission("CinesFull")){
return "
<a href=\"".route("theater.edit",$theater->ID_Centro)."\" class=\"btn btn-success \" >".trans("action.edit")."</a> ".
"<a href=\"#\" onclick=\"deleteItem('$theater->ID_Centro')\" class=\"btn btn-danger\">".trans("action.delete")."</a>";
}else{
return "";
}
});
}
/**
* Get the query object to be processed by dataTables.
*
* @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder|\Illuminate\Support\Collection
*/
public function query()
{
$query = Theater::query()->select($this->getColumns());
return $this->applyScopes($query);
}
/**
* Optional method if you want to use html builder.
*
* @return \Yajra\Datatables\Html\Builder
*/
public function html()
{
return $this->builder()
->columns([
[
'name'=>'ID_Centro'
]
])
->minifiedAjax('')
->addAction(['printable' => false])
->parameters([
'dom' => 'Bfrtip',
'order' => [[0, 'desc']],
'buttons' => [
'print'
],
]);
}
/**
* Get columns.
*
* @return array
*/
protected function getColumns()
{
return [
[
'name'=>'ID_Centro',
'data'=>'ID_Centro',
'title'=>'ID_Centro'
]
];
// return [
// [
// "orderable" => true,
// "searchable" => true,
// "title" => "ID_Centro",
// "data" => "ID_Centro"
// ],
// [
// 'name' => 'type_id',
// "searchable" => false,
// "title" => "Type",
// "data" => "type",
// ],
// [
// 'name' => 'tag',
// "searchable" => false,
// "title" => "Tag",
// "data" => "tag",
// "visible" => false,
// ],
// ];
// 'ID_Centro',
// 'Nombre',
// 'LocalidadCentro',
// 'ProvinciaCentro',
// 'Tlfno1',
// 'Email',
// ];
}
/**
* Get filename for export.
*
* @return string
*/
protected function filename()
{
return 'theater_' . time();
}
}
我在实现它时遇到了这个错误。
Exception Message:↵↵strtolower() expects parameter 1 to be string, array given"
谁能帮我解决这个问题。