如何在评论关系中获得文章翻译?

时间:2017-01-17 13:35:05

标签: laravel laravel-5 laravel-5.2

我有文章和翻译之间的关系,但我怎么能在评论中得到它?

$comments = ArticleComments::orderBy('created_at','desc')->with('user')->with('article')->with('translations')->paginate(10);

我也尝试了这个

$comments = ArticleComments::orderBy('created_at','desc')->with('user')->with('article')->with('translations')->whereHas('translations',function($query) use($default_language_id){
    $query->where('language_id','=',$default_language_id);
  })->paginate(10);

有什么建议吗?我收到文章但不是他们的翻译...

型号:

注释:

  public function article()
    {
        return $this->belongsTo('App\Models\Articles','article_id');
    }

文章:

  public function translations()
    {
      return $this->hasMany('App\Models\ArticleTranslations', 'article_id');
    }

2 个答案:

答案 0 :(得分:1)

你应该用这个:

$comments = ArticleComments::orderBy('created_at','desc')->with('user')->with('article')->with('article.translations')->paginate(10);

了解更多信息: https://laravel.com/docs/5.3/eloquent-relationships 在嵌套的渴望加载部分

如果您想添加查询位置:

$comments = ArticleComments::orderBy('created_at','desc')->with('user')->with('article')->with('article.translations',function($query)
    {
         $query->where('ANY CONDITION');
    })->paginate(10);

答案 1 :(得分:0)

应该是这样的

$comments = ArticleComments::orderBy('created_at','desc')->with('user')->with('article',function ($query) {
              $query->with('translations')
              })->paginate(10);