旅行者-要浏览的特定列

时间:2019-04-15 06:34:43

标签: php laravel laravel-5 voyager

我试图在浏览器上显示一些特定的列标题,我已经定制了控制器和模型,还对定制控制器内的e进行了一些更改。

index()

我已更改模型查询public function index(Request $request) { // GET THE SLUG, ex. 'posts', 'pages', etc. $slug = $this->getSlug($request); // GET THE DataType based on the slug $dataType = Voyager::model('DataType')->where('slug', '=', $slug)->first(); // Check permission $this->authorize('browse', app($dataType->model_name)); $getter = $dataType->server_side ? 'paginate' : 'get'; $search = (object) ['value' => $request->get('s'), 'key' => $request->get('key'), 'filter' => $request->get('filter')]; $searchable = $dataType->server_side ? array_keys(SchemaManager::describeTable(app($dataType->model_name)->getTable())->toArray()) : ''; $orderBy = $request->get('order_by', $dataType->order_column); $sortOrder = $request->get('sort_order', null); $usesSoftDeletes = false; $showSoftDeleted = false; $orderColumn = []; if ($orderBy) { $index = $dataType->browseRows->where('field', $orderBy)->keys()->first() + 1; $orderColumn = [[$index, 'desc']]; if (!$sortOrder && isset($dataType->order_direction)) { $sortOrder = $dataType->order_direction; $orderColumn = [[$index, $dataType->order_direction]]; } else { $orderColumn = [[$index, 'desc']]; } } // Next Get or Paginate the actual content from the MODEL that corresponds to the slug DataType if (strlen($dataType->model_name) != 0) { $model = app($dataType->model_name); if ($dataType->scope && $dataType->scope != '' && method_exists($model, 'scope' . ucfirst($dataType->scope))) { $query = $model->{$dataType->scope}(); dd($query); } else { // $query = $model::select('*'); $query = $model::select('id', 'owner_name'); } // Use withTrashed() if model uses SoftDeletes and if toggle is selected if ($model && in_array(SoftDeletes::class, class_uses($model)) && app('VoyagerAuth')->user()->can('delete', app($dataType->model_name))) { $usesSoftDeletes = true; if ($request->get('showSoftDeleted')) { $showSoftDeleted = true; $query = $query->withTrashed(); } } // If a column has a relationship associated with it, we do not want to show that field $this->removeRelationshipField($dataType, 'browse'); if ($search->value != '' && $search->key && $search->filter) { $search_filter = ($search->filter == 'equals') ? '=' : 'LIKE'; $search_value = ($search->filter == 'equals') ? $search->value : '%' . $search->value . '%'; $query->where($search->key, $search_filter, $search_value); } if ($orderBy && in_array($orderBy, $dataType->fields())) { $querySortOrder = (!empty($sortOrder)) ? $sortOrder : 'desc'; $dataTypeContent = call_user_func([ $query->orderBy($orderBy, $querySortOrder), $getter, ]); } elseif ($model->timestamps) { $dataTypeContent = call_user_func([$query->latest($model::CREATED_AT), $getter]); } else { $dataTypeContent = call_user_func([$query->orderBy($model->getKeyName(), 'DESC'), $getter]); } // Replace relationships' keys for labels and create READ links if a slug is provided. $dataTypeContent = $this->resolveRelations($dataTypeContent, $dataType); } else { // If Model doesn't exist, get data from table name $dataTypeContent = call_user_func([DB::table($dataType->name), $getter]); $model = false; } // Check if BREAD is Translatable if (($isModelTranslatable = is_bread_translatable($model))) { $dataTypeContent->load('translations'); } // Check if server side pagination is enabled $isServerSide = isset($dataType->server_side) && $dataType->server_side; // Check if a default search key is set $defaultSearchKey = $dataType->default_search_key ?? null; $view = 'voyager::bread.browse'; if (view()->exists("voyager::$slug.browse")) { $view = "voyager::$slug.browse"; } return Voyager::view($view, compact( // dd($dataType), 'dataType', 'dataTypeContent', 'isModelTranslatable', 'search', 'orderBy', 'orderColumn', 'sortOrder', 'searchable', 'isServerSide', 'defaultSearchKey', 'usesSoftDeletes', 'showSoftDeleted' )); } 这样可以在视图上提供适当的单列数据,但所有列标题仍会显示在视图上。

下面是$query=$model::select('id','owner_name');视图代码。

thead

0 个答案:

没有答案