2016-04-14 12 views
0

ストアとコメントモデルが設定されており、ストアのコメントをすべて連結して返すリレーションシップを作成しました。私は熱心な読み込みを使用しようとするまで、これは正常に動作しています、そして、関係は常にNULLを返します。eager loadingを使用しているときにLaravel 5.1リレーションシップが動作しない

これは関係ある:

public function FormattedStoreComments() 
{ 
    return $this->hasOne('App\Models\StoreComment','StoreID','StoreID') 
       ->select(DB::raw("group_concat(DATE_FORMAT(StoreComment.created_at,'%Y-%m-%d'), ' - ', ShortName, ' - ', Comment, '\n' ORDER BY StoreComment.created_at DESC SEPARATOR '') as Comments")) 
       ->join('users','StoreComment.created_by','=','users.UserID') 
       ->groupBy('StoreID') 
       ->whereNull('StoreComment.deleted_at') 
       ->orderBy('StoreComment.created_at','DESC'); 
} 

が、これは熱心なロードで作業してはならない理由理由はありますか?

public function scopeFormattedStoreComments($query) 
    { 
    return $query->hasOne('App\Models\StoreComment','StoreID','StoreID') 
      ->select(DB::raw("group_concat(DATE_FORMAT(StoreComment.created_at,'%Y-%m-%d'), ' - ', ShortName, ' - ', Comment, '\n' ORDER BY StoreComment.created_at DESC SEPARATOR '') as Comments")) 
      ->join('users','StoreComment.created_by','=','users.UserID') 
      ->groupBy('StoreComment.StoreID') 
      ->whereNull('StoreComment.deleted_at') 
      ->orderBy('StoreComment.created_at','DESC'); 
    } 

をして、あなたはこのようにそれを呼び出すことができます:

+0

シェアウルコントローラあまりにもUができますか? –

答えて

0

雄弁スコープを使用して、これを試してみてください

$formattedStoreComments = Store::formattedStoreComments()->get(); 
+0

良い点ですが、残念ながら変更はありません。 – pyy

+0

ブラウザのコンソールにエラーメッセージを設定してください。 – BKF

+0

私は 'return dd($ store-> FormattedStoreComments);'を使用しています。コントローラーでコメントを表示します。熱心な読み込みがなければコメントはありますが、熱心な読み込みではnullが表示されます。 – pyy

関連する問題