Laravel 4 如何在Laravel中通过快速加载选择另一个表联接中的字段

Laravel 4 如何在Laravel中通过快速加载选择另一个表联接中的字段,laravel-4,eloquent,Laravel 4,Eloquent,我有分类到新闻和新闻主表 分类至新闻 新闻中心 名称varchar 标题时间戳 主要新闻 id int 标题varchar 图像varchar 在时间戳处创建 如何按新闻主字段和类别新闻字段返回?我试过这种方法,但不管用 $posts = Categorytonews::with(array( 'Newsmain' => function($query) { $query->orderBy('id', 'DESC')->select(ar

我有分类到新闻和新闻主表

分类至新闻

  • 新闻中心
  • 名称varchar
  • 标题时间戳
主要新闻

  • id int
  • 标题varchar
  • 图像varchar
  • 在时间戳处创建
如何按新闻主字段和类别新闻字段返回?我试过这种方法,但不管用

$posts = Categorytonews::with(array(
    'Newsmain' => function($query)
    {
        $query->orderBy('id', 'DESC')->select(array('title', 'id', 'created_at', 'image'));
    }
    ))
    ->get( );

您需要对此进行连接,因为with()运行另一个查询,因此在那里排序不会完成此任务:

$posts = Categorytonews::with('Newsmain') // get all fields from Newsmain
  ->join('news_main', 'category_to_news.news_id', '=', 'news_main.id') // join for ordering
  ->orderBy('news_main.id','desc') // order by joined field
  ->get('category_to_news.*'); // select only main table, you don't need joined fields
                               // on Categorytonews model - they will be loaded by with()
$posts = Categorytonews::with('Newsmain') // get all fields from Newsmain
  ->join('news_main', 'category_to_news.news_id', '=', 'news_main.id') // join for ordering
  ->orderBy('news_main.id','desc') // order by joined field
  ->get('category_to_news.*'); // select only main table, you don't need joined fields
                               // on Categorytonews model - they will be loaded by with()