我在使用JsValidation的CreateRequest中使用laravel唯一规则时遇到问题。这是请求代码。
class CreateProductRequest extends Request
{
public function rules()
{
return [
'factory_id' => 'required',
'category' => 'required',
'product_code' => 'required|unique:product',
'un_code' => 'required|unique:product',
'hs_code' => 'required|unique:product',
'section' => 'required',
'status' => 'required',
'product_type' => 'required',
'classification' => 'required',
'main_product_market' => 'required',
'custodian_user_id' => 'required'
];
}
}
当我删除它的唯一字段时它很好。但是根据独特的规则,我会得到500服务器错误,如下所示
在控制台中报告
值得注意的是,如果我不使用JSValidation Laravel将不会产生错误
更新:
在调试栏中我收到此错误
'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'name'' in /.../demo/vendor/laravel/framework/src/Illuminate/Database/Connection.php:408:
答案 0 :(得分:1)
您尝试为每个项目使用相同的唯一字段:
A + (-B)
我猜测Overflow = (Sign(A) == Sign(B)) and (Sign(Sum) != Sign(A))
是你的桌子,而不是场地。
我认为这就是你可能会追求的目标:
'product_code' => 'required|unique:product',
'un_code' => 'required|unique:product',
'hs_code' => 'required|unique:product',
这将要求每个字段都是唯一的。
答案 1 :(得分:0)
这个问题后来解决了。我的问题是我没有打字CreateProductRequest
而是使用Request
。
我应该是typeHinted扩展的Request类来声明规则。