【问题标题】:laravel jsValidation error while using unique rule使用唯一规则时laravel jsValidation错误
【发布时间】:2016-11-01 15:51:55
【问题描述】:

我在使用 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:

【问题讨论】:

  • 您的服务器响应 500 错误,这意味着您需要查看 apache/nginx 错误日志以获取答案。
  • @jszobody 但如果我只是从规则中删除唯一性就不会这样

标签: php validation laravel jsvalidation


【解决方案1】:

您正在尝试为每个项目使用相同的唯一字段:

'product_code' => 'required|unique:product',
'un_code' => 'required|unique:product',
'hs_code' => 'required|unique:product',

我猜product 是你的表,而不是字段。

我想这就是你所追求的:

'product_code' => 'required|unique:product,product_code',
'un_code' => 'required|unique:product,un_code',
'hs_code' => 'required|unique:product,hs_code',

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

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

【讨论】:

  • 仍然有同样的问题
  • 一些有趣的事情......如果我不使用 JS 验证它会工作正常。
  • 我将答案更改为 unique:table,field - 假设产品是表格,试一试(检查 js 验证文档,他们以这种方式列出。email' => 'unique:users,email_address
  • 还是一样,我之前确实使用过它...不走运我还是会得到同样的错误
  • 执行tail -f /usr/local/apache/logs/error_log - 按回车几次以清除一些空间然后再次触发验证,这样应该更容易看到错误。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2015-02-27
    • 2018-05-24
    • 2016-02-20
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    相关资源
    最近更新 更多