Php Laravel/Lumen模型查询with::和何处:如何正确执行此操作?

Php Laravel/Lumen模型查询with::和何处:如何正确执行此操作?,php,laravel-5,eloquent,lumen,laravel-5.5,Php,Laravel 5,Eloquent,Lumen,Laravel 5.5,嘿,在拉威尔/卢明,我有一个模型“文章”。以下工作: $article = Article::with('ArticleTranslations', 'ArticleTranslations.Terms','Category','Category.CategoryTranslations') ->where('tbl_article.a_id',$id) ->first(); 但是,以下操作失败,但有一个例外: $art

嘿,在拉威尔/卢明,我有一个模型“文章”。以下工作:

    $article = Article::with('ArticleTranslations',
       'ArticleTranslations.Terms','Category','Category.CategoryTranslations')
        ->where('tbl_article.a_id',$id)
        ->first();
但是,以下操作失败,但有一个例外:

    $article = Article::with('ArticleTranslations',
        'ArticleTranslations.Terms','Category','Category.CategoryTranslations')
        ->where('tbl_article.a_id',$id)
        ->where('tbl_articleTranslation.at_languageId',$language->getKey())
        ->where('tbl_categoryTranslation.ct_languageId',$language->getKey())
        ->first();
。。。例外情况如下:

(3/3)QueryException SQLSTATE[42S22]:未找到列:1054未知 “where子句”(SQL: 从
tbl_文章
中选择*where
tbl_文章
a_id
=1和
tbl\u article translation
at\u languageId
=2和
tbl_categoryTranslation
ct_languageId
=2限制1)在 Connection.php(第664行)位于Connection->runQueryCallback('select')* 来自
tbl_文章
其中
tbl_文章
a_id
=?和
tbl\u article translation
at\u languageId
=?和
tbl_categoryTranslation
ct_languageId=?限制1',数组('1',2, 2) ,Connection.php(第624行)中的对象(闭包)


但是我确信,
tbl\u articletransformation.at\u languageId
是存在的。哪里可能出错?是否有更正确的方法?如果要筛选随文章加载的相关记录,需要对关系应用约束

要加载所有文章,但只包含给定语言的翻译,请执行以下操作:

$article = Article::with(
  'ArticleTranslations' => function($query) use ($language) {
    $query->where('at_languageId', $language->getKey());
  },       
  'ArticleTranslations.Terms',
  'Category',
  'Category.CategoryTranslations' => function($query) use ($language) {
    $query->where('ct_languageId', $language->getKey());
  }
)->findOrFail(id);

“where”属性仅适用于tbl_article表,其中不存在该字段。使用“with()”加载的翻译、类别和其他相关模型分别加载到单独的查询和不应用语句的查询中。您试图从数据库中加载的是什么?好的,这是有意义的,到目前为止可以理解。一篇文章有一个有语言的文章翻译。我只想用所需的语言(id为$Language->getKey())加载文章。我怎样才能做到最好?