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

302
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? ведь по идеи должно находить только цельное слово

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

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

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

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

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

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

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

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

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

302