2

パラメータを使用したモデルのメソッドに問題があります。私は 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;パラメータをメソッドに渡すときに問題が発生するのはなぜですか?

4

1 に答える 1