Как получить не заказанный продукт из таблицы продуктов в laravel с разбивкой на страницы?

У меня есть две таблицы Таблица продуктов: столбцы (id, product_name, product_image, price) Таблица заказов: столбцы (id, Product_id, user_id, orders_on)

У меня есть страница со списком (изначально я перечисляю все продукты из таблицы продуктов). Если продукт добавлен в корзину, он должен быть удален из корзины в зависимости от пользователя.

Я написал такой запрос:

 $menuspecial=Product::paginate(10)->toArray();
 foreach($menuspecial as $menu){
        $menuinfo = Cart::where('product_id',$menu['id'])->where('user_id',$id)->first();
        if(!isset($menuinfo)){
            $menuvalue[] = $menu->get();
        }

Во время ответа api я не получаю данные разбивки на страницы (такие как следующий URL, страница ... и т. Д.)

Заранее спасибо .


person Ranjith R    schedule 18.05.2017    source источник
comment
пробовали ли вы simplePaginate(10) laravel.com/docs/5.4/pagination#displaying-pagination- результаты   -  person Alex Harris    schedule 18.05.2017
comment
@chasenyc, если мы вернемся с использованием данных foreach, тогда данные разбивки на страницы не будут отображаться правильно, если есть какой-либо другой способ получить данные из обеих таблиц   -  person Ranjith R    schedule 18.05.2017


Ответы (1)


Вы хотите, чтобы элементы корзины больше не появлялись в меню продуктов. Сделай это.

    $cartProducts = Cart::where('user_id',$id)
        ->get()
        ->pluck('product_id')
        ->toArray();

    $productMenu = Product::whereNotIn('id', $cartProducts)
        ->paginate(10);
person Sandeesh    schedule 18.05.2017
comment
какой будет URL следующей страницы, как это будет происходить. - person Ranjith R; 18.05.2017
comment
Вы можете узнать больше о разбиении на страницы в официальном документе laravel.com/docs/5.4/pagination, он генерирует URL-адрес следующей страницы, используя входные данные для получения страницы, для которых по умолчанию установлено значение «page», а номер следующей страницы рассчитывается на основе оставшегося набора результатов. - person Sandeesh; 18.05.2017