パラメータを使用したモデルのメソッドに問題があります。私は 2Page
とを持ってい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 形式で返しています (API として Laravel を使用しています)。しかし、このアプローチは機能しません。それは私にエラーをスローします:
未定義のメソッド Illuminate\Database\Query\Builder::contentTranslations() の呼び出し
少し前に、すべての言語に戻りたいと思っていたcontentTranslations
ので、モデル メソッドにパラメーターがなく、foreach ループcontentTranslations
で呼び出した後、すべてが正常に機能しました。$page->contentTranslations;
パラメータをメソッドに渡すときに問題が発生するのはなぜですか?