【发布时间】:2017-11-07 11:29:49
【问题描述】:
嘿,在 Laravel/Lumen 中,我有一个模型“文章”。以下作品:
$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 子句”中的“tbl_articleTranslation.at_languageId”列(SQL: 从
tbl_article中选择 * 其中tbl_article.a_id= 1 和tbl_articleTranslation.at_languageId= 2 和tbl_categoryTranslation.ct_languageId= 2 限制 1) 在 Connection.php(第 664 行)在 Connection->runQueryCallback('select * 来自tbl_articletbl_article.a_id= ?和tbl_articleTranslation.at_languageId= ?和tbl_categoryTranslation.ct_languageId= ?限制1',数组('1',2, 2)、Connection.php中的object(Closure))(第624行)
但是我确信tbl_articleTranslation.at_languageId 存在。我可能在哪里出错,有没有更正确的方法?
【问题讨论】:
-
“where”属性仅适用于 tbl_article 表,并且该字段不存在其中。您使用“with()”加载的翻译、类别和其他相关模型在单独的查询中加载,并且在未应用语句的地方加载。您试图从数据库中加载什么?
-
好吧,有道理,到目前为止可以理解。一篇文章有一个具有语言的文章翻译。我只想用所需的语言(id 为 $language->getKey())加载文章。我怎样才能做到最好?
标签: php laravel-5 eloquent lumen laravel-5.5