【问题标题】:Sorting in the parent model在父模型中排序
【发布时间】:2021-11-26 12:50:12
【问题描述】:

我有一个模型,我在其中对项目进行排序

public static function getArticleBlocks() {
        return ArticleBlock::orderBy('order', 'ASC')->get();
    }

这个模型有一个父 Article 我用 ArticleBlock 数据输出数据

public static function getArticle($id) {
        return Article::where('id', $id)->with(['blog_categories', 'article_recommendations', 'article_blocks', 'article_comments'])->first();
    }

当得到Article时,如何对article_blocks进行同样的排序?

【问题讨论】:

  • 您要根据article_blocks计数对文章进行排序吗?
  • 并发布到目前为止尝试过的代码
  • @ManojKiranAppathurai 我需要正确排序所有article_blocks 元素,以便它们按顺序排列,例如顺序 1、顺序 2 等。
  • stackoverflow.com/a/18143469/8607640看到这个答案,像上面的答案一样在article_blocks关系中设置orderBy

标签: laravel


【解决方案1】:

如果你想对 hasmany Relation 记录进行排序。您可以通过方法将回调作为数组值传递。

sort_column 重命名为您的要求

public static function getArticle($id) 
    {
        return Article::query()
        ->where('id', $id)
                ->with([
                    'blog_categories', 
                    'article_recommendations', 
                    'article_blocks' => function($query){
                    return $query->orderBy('sort_column','ASC');
                    }, 
                    'article_comments'
                ])
                ->first();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-23
    • 2017-08-21
    • 2020-05-06
    • 2015-05-26
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多