За последние 24 часа нас посетили 22395 программистов и 1153 робота. Сейчас ищут 657 программистов ...

Joinы в Laravel

Тема в разделе "Laravel", создана пользователем pr0n1x, 20 дек 2018.

  1. pr0n1x

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

    С нами с:
    30 мар 2006
    Сообщения:
    486
    Симпатии:
    2
    Адрес:
    Киев
    Всем привет.

    Помогите разобраться как работают join в laravel.

    Например есть 2 таблицы users и category

    Я создаю 2 модели, в каждой модели я приписываю соотношения, с этим проблем нет!

    Но если мне нужно вывести список все пользователей, то как я могу объединить эти 2 таблицы

    Я могу сделать так в контроллере

    PHP:
    1. $users = Users::all();
    в виде я перебираю все юзеров и если вывести имя пользователя, тогда

    PHP:
    1. $user->name;
    а если категорию, тогда

    PHP:
    1. $user->category()->name;
    но вот тут у меня вопрос, когда я делаю Users::all() то происходит join с таблицей Сategory или же выбираются только пользователи, а когда я обращаюсь еще к $user->category()->name происходит дополнительный запрос?

    Еще можно сделать через класс DB прописать самостоятельно joinы, но зачем???? ведь я в моделя связи попрописывал.

    Знаком еще с фрейворком CakePHP, так там в моделях прописывают соотношения и сами joinы как таблицы будут взаимосвязываться, в когда нужно вывести список Юзеров с Категориями пишется примерно так

    PHP:
    1. $users = Users->find(['all'])->contain['Category'];
    в этой строчки происходит именно 1 запрос с joinом таблицы Category.

    Как это делается в Laravel?
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям