我想知道dwij/laraadmin
包是否已经实现了隐藏模块列表中列的功能。因为我找不到一个复选框或切换器来隐藏/显示模块设置中的模块列。
我想要这个的原因是因为列中包含大量文本,并且在模块列表中看不到。
答案 0 :(得分:0)
我不太确定为什么我的问题被投票,因为我认为这是一个非常简单的问题(甚至可以通过是或否回答)。所以我认为它不需要很多解释。但是,这是我的答案:
没有选项可以在后端选项中隐藏模块索引视图中的某个列
如果您仍想从模块的索引视图中删除列,则需要执行两项操作。
dtajax()
)index.blade.php
视图中的列的html表头元素 取消设置数据:
在模块的控制器中找到dtajax()方法,该控制器通常位于:
app/Http/Controllers/LA/ModuleNameController.php
看起来像这样:
public function dtajax()
{
$values = DB::table('moduleName')->select($this->listing_cols)->whereNull('deleted_at');
$out = Datatables::of($values)->make();
$data = $out->getData();
$fields_popup = ModuleFields::getModuleFields('moduleName');
for($i=0; $i < count($data->data); $i++) {
for ($j=0; $j < count($this->listing_cols); $j++) {
$col = $this->listing_cols[$j];
if($fields_popup[$col] != null && starts_with($fields_popup[$col]->popup_vals, "@")) {
$data->data[$i][$j] = ModuleFields::getFieldValue($fields_popup[$col], $data->data[$i][$j]);
}
if($col == $this->view_col) {
$data->data[$i][$j] = '<a href="' . url(config('laraadmin.adminRoute') . '/moduleName/' . $data->data[$i][0]) . '">' . $data->data[$i][$j] . '</a>';
}
//********************
// Remove description data values
if ($col == "description") {
unset($data->data[$i][$j]);
$data->data[$i] = array_values($data->data[$i]);
}
//
//********************
}
...
}
...
}
这里我选择删除描述值。我已将此添加到嵌套for循环中:
//********************
// Remove description data values
if ($col == "description") {
unset($data->data[$i][$j]);
$data->data[$i] = array_values($data->data[$i]);
}
//
//********************
删除表头:表头可以在模块的索引刀片文件中找到,通常位于:resources/views/la/modulename/index.blade.php
找到迭代$listing_cols as $col
<tr class="success">
@foreach( $listing_cols as $col )
<th>{{ $module->fields[$col]['label'] or ucfirst($col) }}</th>
@endforeach
@if($show_actions)
<th>Actions</th>
@endif
</tr>
使用if语句检查表头是否为$col != 'columnName'
。所以在我的情况下:
<tr class="success">
@foreach( $listing_cols as $col )
@if($col != 'description')
<th>{{ $module->fields[$col]['label'] or ucfirst($col) }}</th>
@endif
@endforeach
@if($show_actions)
<th>Actions</th>
@endif
</tr>
编辑模块的控制器和视图后,模块的列表将从this变为this。
正如您所看到的,它释放了大量空间。
答案 1 :(得分:0)
嗨Roderik Rasterhoff,
有一种非常简单的方法可以隐藏模块列表页面中的大数据字段。
在每个模块控制器中都有一个公共变量“public $ listing_cols”,其中以逗号分隔列出的所有列名称,您只需删除您不希望在列表中显示的所有列名称页。
例如:在我的情况下 public $ listing_cols = ['id','title','short_intro','long_description']; 我不想显示long_description所以我删除了就好 public $ listing_cols = ['id','title','short_intro']; 并且它的工作非常好。