我正在尝试扩展更新视图,以在编辑表单下方包括一些相关项目的列表视图。
我有两个模型,即Publishers和Volumes,它们之间存在多对多的关系。我想做的是...。当用户单击发布者的编辑按钮时,我希望他们转到带有标准编辑字段的页面,但还希望在列表下方有一个列表视图,其中列出了所有内容通过它们的关系连接到该发布者的卷的数量。
有一种简单的方法吗?
我希望这是有道理的。
答案 0 :(得分:1)
实际上,背包中没有标准功能可以做到这一点。这是一种非常不寻常的做事方式。但是实现它并不难。
如果一个发行商的供应商太多(我希望是这种情况),我会保持简单,不要尝试在其中包括整个背包列表视图(带有ajax,按钮,过滤器等)表格的顶部。我将添加带有条目的标准HTML表(以及使用target = _blank编辑编辑供应商的按钮)。
这是我的处理方法:
在Publisher CRUD中,我将CTFontGetGlyphsForCharacters()
用于“编辑”操作;您可以在bool isBorder(int col, int row, int width, int height)
{
return col == 0 || col == width - 1 || row == 0 || row == height - 1;
}
void fillScreen(void)
{
for(int col = 0; col < w; ++col)
{
for(int row = 0; row < h; ++row)
{
screenMap[col][row]= isBorder(col, row, w, h) ? screenBorder: backGround;
}
}
}
方法中使用$this->crud->setEditView('edit_publisher_with_vendors')
来做到这一点;
在该自定义编辑视图中(在我的示例中为setup()
),我将所有内容复制粘贴到does not get overwritten中,并在Edit表单顶部添加一个带有Vendors的表格;请注意,您在此视图中当前的条目为edit_publisher_with_vendors.blade.php
;由于模型之间存在关系,因此您可以检查模型是否有使用$entry
的供应商,并使用$entry->vendors()->count()
来获取供应商。
希望有帮助。
答案 1 :(得分:1)
正如@tabacitu所述,Backpack目前没有内置的解决方案。也就是说,这可能对您有用:
这将允许您使用嵌套列表视图的所有功能,包括与实体进行交互而不会与父级完全冲突
vendor/backpack/base/layout.blade.php
frameless-layout.blade.php
@include('backpack::inc.main_header')
和@include('backpack::inc.sidebar')
vendor/backpack/crud/list.blade.php
sub-list.blade.php
@extends('backpack::frameless-layout')
addField
添加新字段及其相关模型的配置