使用唯一规则

时间:2016-03-19 14:09:17

标签: php validation laravel jsvalidation

我在使用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服务器错误,如下所示 enter image description here

在控制台中报告

enter image description here

值得注意的是,如果我不使用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:

2 个答案:

答案 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',

这将要求每个字段都是唯一的。

https://laravel.com/docs/5.2/validation#rule-unique

答案 1 :(得分:0)

这个问题后来解决了。我的问题是我没有打字CreateProductRequest而是使用Request

我应该是typeHinted扩展的Request类来声明规则。