Страница индекса не показывает объект БД или иногда показывает неопределенную переменную - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь создать корзину для покупок, но она не показывает содержимое корзины.

Что-то не так, вот мой код в контроллере и блейде:

    public function index()
    {
        $id = Auth::id();

        $results = DB::table('carts')
                        ->select('book_id')
                        ->where('user_id', '=', $id)
                        ->get();

        $data = (array) $results;

        $books = Book::all()->whereIn('id', $data);

        return view('carts.index')->withBooks($books);
    }
    @foreach($books as $book)
        <tr>
            <td> {{ $book->autori }} </td>
            <td> {{ $book->titulli }} </td>
            <td> {{ $book->cmimi }}</td>
        </tr>
    @endforeach

1 Ответ

1 голос
/ 12 июня 2019
public function index()
{
     $booksIds = DB::table('carts')
         ->select('book_id')
         ->where('user_id','=', Auth::id())
         ->get()
         ->pluck('book_id')
         ->toArray();

     $books = Book::whereIn('id', $booksIds)->get();

     return view('carts.index')->withBooks($books);
}

или с помощью одного запроса:

public function index()
{
     $books = Book::join('carts', static function($join) {
          $join->on('books.id', '=', 'carts.book_id')
               ->where('carts.user_id', '=', Auth::id());
     })->get();

     return view('carts.index')->withBooks($books);
}

Вы должны прочитать и использовать красноречивые отношения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...