Laravel DataTables 按多对多关系过滤

问题描述

我在我的项目中使用了 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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...