@alexh7854

Почему laravel достает данные из базы если я загрузил их в массив?

Здравствуйте.

Подскажите как это доработать.

Я достаю список слов с переводами из базы данных. Получается все данные из базы загружаются в массив $myWords.
$myWords = Word::with('translations')
            ->where('lang_id', $text_lang_id)
            ->whereHas('translations', function (Builder $query) use ($translate_to_lang_id) {
            $query->where('lang_id', '=', $translate_to_lang_id);
        })->get();

Затем я хочу достать перевод (hasMany) слова. Почему laravel лезет в базу и достает данные из базы, если я загрузил все данные в переменную $myWords?
$word = $myWords->where('word', $wordKey)->first();
$word->translations()->where('lang_id',$translateToLangId)->where('word_id', $word->id)->first()->translation;
  • Вопрос задан
  • 98 просмотров
Решения вопроса 2
JhaoDa
@JhaoDa
LaravelRUS Team
Надо заглянуть в документацию для понимания разницы между $word->translations() и $word->translations.
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Потому что translations(), а не translations.

А вообще полная каша в этих всех строках.
Почему бы сразу не достать то что нужно и нужной таблицы, а заходить через 3 разных конструкции сложносочиненных?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы