问题描述
我在我的项目中使用了 Laravel DataTables,但无法弄清楚如何通过多对多关系进行过滤。为了显示相关值(以逗号分隔的列表),我将其添加到 Ajax 控制器返回的 DataTables 函数中。
->editColumn('tags',function (Post $post) {
return $post->tags->map(function($tag) {
return $tag->name;
})->implode(',');
})
这将使它在视觉上显示出来,但 Post 表没有直接标记列。它使用 posts_tags 数据透视表,因为它是多对多关系。这会中断搜索/过滤。我可以将它从 editColumn 更改为 addColumn,这将允许完成搜索/过滤,但您不能通过标签进行搜索/过滤,这并不理想。
看起来我可以定义自定义 SQL 查询以按该列 see here 进行过滤,但我不确定该查询会是什么样子。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)