2

有没有办法对 Voyager's BREAD 显示的记录列表应用某些条件?例如,只显示某列为空白的记录(即WHERE 'col_name' IS NULL)?

4

2 回答 2

3

更新(18 年 17 月 12 日):


您可以覆盖控制器并添加 where 子句。例如,如果您需要覆盖“帖子”列表,那么您应该:

  1. 制作一个自定义 PostController:php artisan make:controller PostController
  2. 从 Voyager BREAD 控制器扩展它:class PostController extends \TCG\Voyager\Http\Controllers\VoyagerBaseController
  3. 导入航海者的门面:use TCG\Voyager\Facades\Voyager;
  4. 从 VoyagerBaseController 复制整个索引函数。你可以在\vendor\tcg\Voyager\Http\Controllers\VoyagerBaseController
  5. 覆盖它以添加您需要的任何逻辑或过滤器,例如:

$dataType = Voyager::model('DataType') ->where('slug', '=', $slug) ->where('col_name', '=', NULL) ->first();

您还可以在同一函数中设置$orderBy = 'col_name'和自定义值。这里是航海者的文档。$sortOrder = 'asc'/'desc'

老的:


就在这里。您需要编辑视图并应用条件过滤器。这里解释了如何覆盖视图(如果你想在将数据发送到视图之前过滤它,还有控制器)。

于 2018-12-11T03:54:59.217 回答
2

只需在模型中定义一个范围:

public function scopeMyScope($query)
{
    return $query->where('col_name', null);
}

然后转到面包表格并从范围下拉列表中选择它:)

于 2020-09-27T15:55:16.183 回答