【发布时间】:2016-12-06 07:51:07
【问题描述】:
order_id....product_id....product_quantity....created_at....updated_at
这是我的数据透视表...在我的 OrderRequest 表中,我想将 product_id 指定为唯一的。但是当我这样写的时候;
public function rules()
{
return [
'product_id' => 'unique:order_product,product_id'
];
}
我遇到了一个问题。 product_id 变得唯一。但不仅顺序,它变得完全独特。我想在其他订单中使用这个 product_id 但我不能。我能做些什么?如何将 product_id 分配为每个 order_id 值的唯一值?
【问题讨论】:
-
您可以通过编辑数据透视迁移并添加此行
$table->primary(['order_id', 'product_id']);来实现这一点,如果您愿意,您可以从数据透视表中删除id列。并且不要忘记做artisan migrate:refresh!! -
没关系,但我需要别的东西。在请求表中,当我两次选择产品时,我应该收到一条错误消息。当我按照您说的尝试时,它不会给我错误消息,只是将同一产品的最后一个选项保存到数据库中。
-
看看这个post它可以帮助你,如果你需要一些解释,请告诉我:)
-
我知道那个帖子。但它是不同的。在那个例子中,用户是静态的,但在我的例子中,订单发生了变化。 order_id 在控制器中创建。所以没用
-
能否详细说明,充分了解您的需求,如何选择产品?在您的控制器中,您会获得所选产品的列表或究竟是什么? ...