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 数据表,列名的多级关系的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - Bootstrap 数据表(yajra)中的单选按钮
Laravel - Yajra Datatables 异常消息:试图获取非对象的属性
yajra/laravel-datatables 搜索不适用于 laravel 5.4