Взаимодействие с моделями Laravel

298
22 октября 2017, 23:17

Имеется функция, выводящая выборку постов

 public function sold(){
        $post=Posts::where('amount', '=', 0)->where('user_id','=', Auth::user()->id)->paginate(5);
        return $post->title;
        $purchase=Purchase::where('post_id','=', $post->id);
        $post->purchasedate=$purchase->created_at;
        return view('home')->withPost($post);
    }

При попытке вызова я получаю ошибку, т.к. не могу использовать $post->id для присоединения к выборке результатов из др. таблицы. Как мне это грамотно реализовать? Отношения между моделями установлены.

Answer 1

Если в моделях связь установлена, то остается просто вызвать это отношение, к примеру в модели Posts у тебя такое отношение

public function purchases() {
    return $this->hasMany('App\Purchase', 'id', 'post_id')->orderBy('id', 'desc');
}

Тогда в методе sold нужно использовать такую конструкцию:

upd после комментариев

$post=Posts::where([
                     ['amount', '=', 0],
                     ['user_id','=', Auth::user()->id]
                   ])->with('purchases')->paginate(5);

а в blade используешь {{$post->purchases[0]->created_at}}

p.s. чуть переделал where, так симпатичнее

READ ALSO
поиск слов цельных слов

поиск слов цельных слов

Не понимаю, почему захватило abea? ведь по идеи должно находить только цельное слово

218
PHPExcel как сформировать файл

PHPExcel как сформировать файл

в чем может быть ошибка?данные не записываются

221
Авторизация root'а в PMA на Ubuntu 16.04 под LAMP

Авторизация root'а в PMA на Ubuntu 16.04 под LAMP

Установил по отдельности пакеты LAMP'aПроблема в авторизации в PHPMyAdmin

225
POST запрос CURL, возвращает 404

POST запрос CURL, возвращает 404

Нужно отправить POST-запрос банку для авторизацииЗапрос отправляю CURL, но возвращается 404 код

298