我正在开发一个基于Laravel 5.3和Backpack CRUD的项目。我的项目有大约8种不同的内容类型(新闻,页面,投资组合,活动,团队,视频,图库,工作)。
我需要能够为每种内容类型(n-n)添加标签,并且每种内容类型都有自己的特定标签,因此标签不会在内容类型之间共享。
如果我想使用select_multiple或select2_multiple字段类型,我需要8个表用于内容本身,8个数据透视表和8个表用于标记(!)。
显然我想只有一个表格用于标签,但是如果我使用select_multiple或select2_multiple字段类型,我会得到每种内容类型的编辑形式的所有标签。
所以,我的问题是:是否有一种优雅的方法可以过滤select_multiple或select2_multiple字段类型的结果?
我创建了一个包含两种内容类型的简单模式: http://dbdesigner.net/designer/schema/60412
在此示例中,我希望能够在编辑新闻或页面内容时过滤content_type_id上的标记列表。所以我只想在页面编辑表单中看到新闻编辑表单中的新闻标签,以及页面标签。
或者我应该按预期使用select_multiple字段类型,并接受8个标记表(?)
非常感谢任何帮助或建议。
答案 0 :(得分:1)
我认为干净的方式是:
为每个代码使用创建不同的模型,因此NewsTag
,PageTag
,PortfolioTag
等只会扩展Tag
模型并使用{{{ 3}}在content_type_id
;
使用NewsTag
,PageTag
,PortfolioTag
等背包select2_multiple字段;我将使用您在Tag
模型上设置的任何内容(包括table
属性,mutators,访问者等);
干杯!