За последние 24 часа нас посетили 17307 программистов и 1643 робота. Сейчас ищут 1100 программистов ...

Выбор данных с 3 таблиц

Тема в разделе "Laravel", создана пользователем Dmitry2017, 9 дек 2021.

  1. Dmitry2017

    Dmitry2017 Активный пользователь

    С нами с:
    12 ноя 2017
    Сообщения:
    12
    Симпатии:
    0
    Здравствуйте, начал изучение Laravel и пробую создать примитивный телефонный справочник. Есть 3 таблицы:
    1 - Название учреждения
    2 - Должность
    3 - Контактные данные человека + id учреждения где он работает и id его доложности.

    Не могу решить такую проблему. На главной странице есть список учреждений и по нажатию на учреждение должны открыться все его рабочие. Вот не получается создать правильный запрос для выбора данных, подскажите пожалуйста.

    Пробовал так Personal::query("SELECT * FROM personals, institutions, positions WHERE pos_id=positions.id AND inst_id=institutions.id")->where('id', $id)->get(); и что-то падает в ошибку,не могу понять почему

    Поля талибцы учреждения: id, tittle
    Поля талибцы должности: id, tittle
    Поля таблицы О человеке: id, surname, name, lastname, pos_id(id должности), inst_id(id учреждения), phone
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.854
    Симпатии:
    748
    Адрес:
    Татарстан
    прочитайте про связи в Laravel ... достаточно грамотно описать в модели relation чтоб потом не парится и использовать всю мощь ORM
    PHP:
    1.     public function positions()
    2.     {      
    3.         return $this->BelongsTo('App\Position', 'pos_id');      
    4.     }
    тогда запрос человека с данными нужными будет выглядеть как
    PHP:
    1. Personal::with('positions','institutions')->get()
     
  3. Dmitry2017

    Dmitry2017 Активный пользователь

    С нами с:
    12 ноя 2017
    Сообщения:
    12
    Симпатии:
    0
    Спасибо Вам огромное, получилось!!!!!!! :)))))
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.579
    Симпатии:
    1.760
    И очень полезно понимать, какие запросы при этом ларавел формирует. Советую заглянуть. Спойлер: там просо три запроса. Не всегда пытаться всё впендюрить в один запрос - хорошая идея