Laravel Yajra 数据表,列名的多级关系

Posted

技术标签:

【中文标题】Laravel Yajra 数据表,列名的多级关系【英文标题】:Laravel Yajra Datatables, multi level relationship on column name 【发布时间】:2021-03-26 16:48:13 【问题描述】:

javascript: data:'category_name',name:'sale.sale_detail.product.category.category_name' 是否可以访问多级关系?

sale 表有一个子表“sale_detail”,sale_detail 包含 product_id,product 表也有 category 表的 id

【问题讨论】:

您应该尝试在服务器端格式化数据。如果您使用的是 laravel,只需使用带有多个连接的 DB::table 函数,然后将其传递给 DataTables 函数。 请edit你的问题澄清问题的标题,包括minimal reproducible example你的代码,。见How to Ask 【参考方案1】:

让我从我的代码中举一个例子。您可以使用@Japheth Suarez 提到的join

$category = Category::findOrFail($slug);

$reviews = DB::table('reviews')
                    ->join('users', 'reviews.user_id', '=', 'users.id')
                    ->select('reviews.*', DB::raw('CONCAT(users.first_name, "  ", users.last_name) AS full_name'))
                    ->where('category_id', '=', $category->id);

让我告诉你,我已经尝试过 Eager Loading 与 DataTables,但在性能方面从来没有很好地工作过。所以对我来说最好的解决方案是使用join,而不是这样使用$posts = Post::with('user')->select('posts.*');

希望这会有所帮助。 编码愉快!

【讨论】:

以上是关于Laravel Yajra 数据表,列名的多级关系的主要内容,如果未能解决你的问题,请参考以下文章

如何在 yajra 数据表 laravel 中添加操作列

Laravel - Bootstrap 数据表(yajra)中的单选按钮

Laravel - Yajra Datatables 异常消息:试图获取非对象的属性

yajra/laravel-datatables 搜索不适用于 laravel 5.4

Laravel 5.7.9 中 Yajra 数据表中的删除按钮

Laravel Yajra 不接受 post/get 查询请求