我的关系没有用?

时间:2016-12-27 09:30:38

标签: laravel laravel-5 laravel-5.2

当我写这段代码时,我的关系不起作用。如何编写这部分代码,以便我可以访问$article->translations()。有什么建议吗?

 $date_number = strval(date('m', strtotime($month)));
      $articles = DB::table('articles')->whereRaw('MONTH(created_at) ='.$date_number)->where('approved',1)->get();

foreach($articles as $article){
    $article->trans = $article->translations()->whereHas('language',function($query) use($current_language_id){
      $query->where('id','=',$current_language_id);
    })->first();
  }

我明白了。当我使用$ articles = Articles :: whereRaw(' MONTH(created_at)='。$ date_number) - > where(' approved',1) - > get() ;

1 个答案:

答案 0 :(得分:1)

当您使用查询构建器的get方法时,它会返回包含结果的Illuminate\Support\Collection,其中每个结果都是PHP StdClass对象的实例,而不是{{1}对象。

因此,您无法使用Eloquent Model对象上的关系,您需要一个StdClass对象。为此,您应该使用Eloquent查询构建器:

Eloquent