laravel - 检查用户是否已经在 Laravel 中添加了特定产品
问题描述
我有两张桌子
- 菜单
- 产品
有以下结构:
菜单:
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 有什么方法可以在没有任何循环的情况下实现这一点。
解决方案
产品型号没有任何引用用户的字段,所以在这里你会得到一个错误
$product = Product::where(['user_id'=>$userID])->with('ProductImages')->get();
您有一个称为“菜单”的表,它充当枢轴,因此您具有多对多的关系
我建议你阅读 Laravel 文档,解释如何建立这种类型的关系。很简单,希望对你有帮助。
https://laravel.com/docs/8.x/eloquent-relationships#many-to-many
推荐阅读
- asp.net-mvc - MSBuild web 包没有额外的文件/目录结构
- c# - 如何计算开始坐标和结束坐标之间的坐标 - uwp c#
- visual-studio-code - vscode中的Mypy构建任务失败
- react-native - React Native 样式覆盖数组
- r - 将 SAS 中的 NESTED IF 语句转换为 R
- c# - 取消选择项目时如何停止语音 Windows.Media.SpeechSynthesis
- android - 对话框滞后于视图通胀
- javascript - 向 D3 瀑布图添加多个小计
- java - 使用 webtarget 从客户端调用休息请求。但是休息资源的参数没有映射到客户端模型类参数
- java - 使用 Spring JPA 的单向多对多映射