Laravel |半组装生成器中的OrderBy相关表的列

时间:2019-06-05 09:08:36

标签: php laravel laravel-5

我有一半准备就绪的Builder实例:

$builder = PageLang::with(['page', 'version'])
           ->where('page_id', $_GET['id']) 
           ->groupBy('version_id').

我需要按页面列(URL)对结果进行排序。诀窍是我需要对已经组装一半的Builder进行处理。我不能早点做。那么我该怎么做:

$builder->related('page', function($q) { $q->orderBy... })

2 个答案:

答案 0 :(得分:1)

您尝试过吗:

$builder = PageLang::join('pages', 'pages.id', '=', 'page_langs.page_id') // you could write your joining columns here
       ->with(['page', 'version'])
       ->where('page_id', $_GET['id']) 
       ->groupBy('version_id')
       ->orderBy('pages.column, 'DESC')->get();

答案 1 :(得分:0)

这是我想的。这将被加载

$builder->with('page', function($q) { 
      $q->orderBy... 
});

也可以使用$_GET帮助函数或request()对象(如果您在控制器方法中有此对象),而不要使用$request