Laravel 航海者自定义 browse.blade.php

Laravel Voyager customize browse.blade.php

Laravel/Voyager 的新手。我已经覆盖了 documentation 中提到的 Voyager Controller 和 View。还需要自定义 browse.blade.php 以显示加入的 table 中的数据。第一部分很简单,补充

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

在覆盖的 VoyagerBaseController 控制器 index(..) 方法中,可以看到 运行

改变的查询
$query->toSql();

但是,在 browse.blade.php.

中找不到 $dataType->browseRows 中的 table_b 数据

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

有什么想法吗?

谢谢。

实际上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();

然后使用merge()方法合并两个"dataTypes""browseRows":

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

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

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