Laravel / Voyager中的有条件面包

时间:2018-08-22 07:59:18

标签: laravel voyager

是否有一种方法可以将某些条件应用于Voyager的BREAD显示的记录列表?例如,仅显示某列为空白(即WHERE 'col_name' IS NULL)的记录吗?

2 个答案:

答案 0 :(得分:1)

更新(17/12/18):


您可以覆盖控制器并添加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. 中找到它
  6. 覆盖它以添加您需要的任何逻辑或过滤器,例如:

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

您还可以在同一函数中设置$orderBy = 'col_name'$sortOrder = 'asc'/'desc'自定义值。 Here旅行者的文档。

OLD:


是的,有。您需要编辑视图并应用条件过滤器。 Here说明了如何覆盖视图(如果要在将数据发送到视图之前对其进行过滤,则可以覆盖控制器)。

答案 1 :(得分:1)

只需在模型中定义范围:

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

然后转到“面包形式”,然后从“范围”下拉列表中选择它:)