微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel DataTables 按多对多关系过滤

如何解决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 举报,一经查实,本站将立刻删除。