【问题标题】:Laravel Yajra Datatables, multi level relationship on column nameLaravel Yajra 数据表,列名的多级关系
【发布时间】: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

标签: laravel eloquent datatable relationship query-builder


【解决方案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.*');

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

【讨论】:

    猜你喜欢
    • 2020-04-17
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多