首页 > 解决方案 > 检查用户是否已经在 Laravel 中添加了特定产品

问题描述

我有两张桌子

  1. 菜单
  2. 产品

有以下结构:

菜单:

id | product_id | user_id 

产品:

id | title | price| user_id

问题是,如果特定用户在菜单表中添加了产品并且已经添加了产品,那么我想显示添加按钮,那么我必须显示删除按钮以从菜单表中删除数据,而不是添加按钮。

 $product = Product::where(['user_id'=>$userID])->with('ProductImages')->get();
 $menuPlanner=Menu::where(['user_id'=>auth()->user()->id])->get();  
 $html =  view('frontend.dashboard.menu.available_items', ['products'=>$product,'menu_planner'=>$menuPlanner])->render();
 echo json_encode(array('products' => $html));

laravel 有什么方法可以在没有任何循环的情况下实现这一点。

标签: laravellaravel-5eloquent

解决方案


产品型号没有任何引用用户的字段,所以在这里你会得到一个错误

$product = Product::where(['user_id'=>$userID])->with('ProductImages')->get();

您有一个称为“菜单”的表,它充当枢轴,因此您具有多对多的关系

我建议你阅读 Laravel 文档,解释如何建立这种类型的关系。很简单,希望对你有帮助。

https://laravel.com/docs/8.x/eloquent-relationships#many-to-many


推荐阅读