За последние 24 часа нас посетили 20142 программиста и 1008 роботов. Сейчас ищут 352 программиста ...

После join двух таблиц в id и id_2 одинаковые значения

Тема в разделе "Laravel", создана пользователем dmsob, 7 апр 2020.

  1. dmsob

    dmsob Новичок

    С нами с:
    7 апр 2020
    Сообщения:
    3
    Симпатии:
    0
    Привет всем!
    Вроде тривиальная задача, но не пойму почему получается такой результат:
    имеем таблицы users и posts, в posts есть author_id, связь собственно по нему...
    в контроллере:


    PHP:
    1. $posts = Post::join('users','author_id', '=','users.id')
    2.         ->orderBy('posts.created_at', 'desc')
    3.         ->paginate(4);
    на вьюшке пытаюсь получить

    PHP:
    1. @foreach($posts as $post)
    2.  
    3. $post->id
    4. @endforeach
    но в ней получаю author_id (( ... выводил и то и то рядом, в каждом посте равны author_id ((
    в консоле смотрел сформированный запрос:

    Код (Text):
    1. select * from `posts` inner join `users` on `author_id` = `users`.`id` order by `posts`.`created_at` desc limit 4 offset 0
    вроде всё правильно... в шторме формировал - получаю нормальную таблицу с разными полями и значениями, короче вроде всё должно работать правильно, но нифига (( второй день бьюсь... подскажите куда ещё посмотреть можно?
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    В таких случаях в селекте ставят не *, а перечисляют поля. В кверибилдере для этого есть метод select()
     
  3. dmsob

    dmsob Новичок

    С нами с:
    7 апр 2020
    Сообщения:
    3
    Симпатии:
    0
    а я и не ставил :) это кверибилдер такое смастерил :) там где текст запроса с * - это из отладочной панели ) ... а метод select() мне в каком месте ставить не совсем догоняю?
    --- Добавлено ---
    всё разобрался! спасибо!