les-anatoliy
@les-anatoliy

Laravel как объединить данные из разных таблиц в одном запросе?

Возможно ли сделать нечто подобное?
К примеру, есть таблицы Categories, Features, Translates, Category_Feature

В общем мне необходимо выбрать все особенности и их переводы, которые относятся к определенной категории (связь между категориями и особенностями в таблице Category_Feature)

Возможно ли выбрать так чтоб переводы были выбраны в одном запросе с особенностями?
[
  'id' => 123,
  'title' => 'Название особенности'
]

$categories = Categories::with('features')->find($id);
        if ($categories) {
        
            $features = $categories ->features() ->get();
        
            if (!empty($features)) {
                foreach ($features as $feature) {
                    $data[] = [
                        'id' => $feature->id,
                        'title' => $feature->titles()->where('lang', LaravelLocalization::getCurrentLocale())->first()->title,
                        'active' => ($request->session()->has('weeks.filter.features')) ? (($feature->id == $request->session()->get('weeks.filter.features')) ? true : false) : false
                    ];
                }
            }
        }
        return $data;


В общем, я хочу избежать этого
$feature->titles()->where('lang', LaravelLocalization::getCurrentLocale())->first()->title
  • Вопрос задан
  • 1139 просмотров
Пригласить эксперта
Ответы на вопрос 1
Напишите простой запрос с JOIN, не занимайтесь ерундой.
https://laravel.com/docs/5.7/database#running-queries
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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