首页 > 解决方案 > Laravel Voyager 自定义 browse.blade.php

问题描述

Laravel/Voyager 的新手。如文档中所述,我已覆盖 Voyager 控制器和视图。还需要自定义browse.blade.php以显示连接表中的数据。第一部分很简单,补充说

$query->join('table_b', 'table_a.id', '=', 'table_b.table_a_id');

在重写的VoyagerBaseController控制器index(..)方法中,可以通过运行查看更改的查询

$query->toSql();

但是,table_b在.$dataType->browseRowsbrowse.blade.php

看来我在这个过程中错过了一步。

有任何想法吗?

谢谢。

标签: phplaravelvoyager

解决方案


实际上table_b存储在$dataTypeContent变量中的数据。$dataType变量从模型中获取数据DataType

$slug = $this->getSlug($request);
$dataType = Voyager::model('DataType')->where('slug', '=', $slug)->first();

所以,为了解决我的问题,我table_b也得到了“dataType”:

$additionalSlug = 'table_b'; // for example
$additionalDataType = Voyager::model('DataType')->where('slug', '=', $additionalSlug)->first();

然后使用以下方法合并两个“dataTypes”“browseRows” merge()

$dataTypeBrowseRows = $dataType->browseRows->merge($additionalDataType->browseRows);

之后在被覆盖的文件中替换@foreach($dataType->browseRows as $row)为。@foreach($dataTypeBrowseRows as $row)browse.blade.php

希望这会对某人有所帮助。


推荐阅读