#php #mysql #laravel #laravel-query-builder
#php #mysql #laravel #laravel-конструктор запросов
Вопрос:
Я хочу показывать товары каждому пользователю на основе товаров в таблице корзины. Если пользователь добавил товар в корзину, то он не должен отображаться в списке товаров только для этого пользователя. Я смог показать уведомление, если товар находится в корзине, но не смог скрыть его, если он уже есть в таблице корзин.
Вот мой CartsController:
// Check if item exists
$status = Cart::where('user_id', Auth::user()->id)
->where('product_id', $product_id)->first();
if(isset($status->user_id) amp;amp; isset($request->product_id)){
session()->flash('warning', 'You already have this item in cart.');
}
В моей таблице корзин есть user_id и product_id.
Как мне создать проверку, вошли ли в таблицу carts идентификаторы пользователя и product_id, чтобы скрыть товары?
Я показываю все товары в табличном формате пользователю с помощью добавить в корзину.
Отношение пользователя к корзине:
public function user()
{
return $this->belongsTo(User::class);
}
Соотношение товаров в корзине:
public function product()
{
return $this->belongsTo(Product::class);
}
Ответ №1:
//Get IDs for products in cart
$productsInCart = Cart::where('user_id',auth()->user()->id)->pluck('product_id')->toArray();
//Get products not in cart
$productsToShow = Product::whereNotIn('id',$productsInCart)->get();
Комментарии:
1. Я хочу скрыть товары, которые уже есть в таблице корзины для пользователя. Если в таблице carts идентификатор пользователя совпадает с идентификатором зарегистрированного пользователя, а product_id совпадает с идентификатором продукта в таблице carts для этого зарегистрированного пользователя. Товар больше не будет отображаться этому пользователю.
2. Спасибо! Я не совсем сделал то, что вы упомянули, но я смог решить свою проблему. Я выбрал все идентификаторы товаров из таблицы корзин, где идентификатор пользователя соответствует зарегистрированному пользователю, и отправил его в whereNotIn. Пожалуйста, отредактируйте свой ответ, и я приму его.
3. Рад, что смог помочь