【发布时间】:2017-05-22 04:20:27
【问题描述】:
模型的参数方法有问题。我有 2 个 Page 和 ContentTranslation。我想根据语言得到ContentTranslation,所以我在Page模型中有以下方法:
public function contentTranslations($language) {
return $this->hasMany('App\ContentTranslation')->where('language', $language);
}
然后我在PageController 中有一个方法可以根据语言获取页面:
public function getPagesByLanguage($language)
{
$pages = Page::orderBy('position', 'asc')->get();
foreach ($pages as $page) {
$page->contentTranslations($language);
}
$return $pages;
}
我以 JSON 格式返回我的结果(我使用 Laravel 作为 api)。但是这种方法行不通。它向我抛出错误:
调用未定义的方法 Illuminate\Database\Query\Builder::contentTranslations()
前段时间,我想为所有语言返回contentTranslations,所以我在contentTranslations 模型方法中没有参数,在foreach 循环中调用$page->contentTranslations; 后一切正常。为什么我在将参数传递给方法时遇到了麻烦?
【问题讨论】:
标签: php laravel eloquent laravel-eloquent