2016-12-27 41 views
0

當我寫這段代碼時,我的關係不起作用。我如何編寫這部分代碼,以便我可以訪問$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();

+0

沒有足夠的數據:和作爲你應該使用Eloquent查詢生成器。請顯示您的關係和數據庫架構。 –

回答

1

當您使用查詢生成器的get方法返回一個包含Illuminate\Support\Collection的結果,每個結果是PHP的一個實例StdClass對象不是Eloquent Model對象。

所以你不能使用StdClass對象上的關係,你需要一個Eloquent對象。提供

$articles = Article::whereRaw('MONTH(created_at) ='.$date_number) 
       ->where('approved',1) 
       ->get();