【问题标题】:Laravel validation with unique fields具有唯一字段的 Laravel 验证
【发布时间】:2018-09-07 21:04:21
【问题描述】:

我一直在 laravel 5.7 中尝试独特的验证。下面是我的验证代码。

$this->validate($request, [
        'name' => 'required|unique:permissions,name',
        'slug' => 'required|unique:permissions,slug', 
    ]);

html 如下:

<div class='container'> 
{!! Form::open(array('route' => 'permission.save','method'=>'POST')) !!}
<div class="row">
    <div class="col-xs-12 col-sm-12 col-md-12">
        <div class="form-group">
            <strong>Name:</strong>
            {!! Form::text('name', null, array('placeholder' => 'Name','class' => 'form-control')) !!}
        </div>
        <div class="form-group">
            <strong>Slug:</strong>
            {!! Form::text('slug', null, array('placeholder' => 'Slug','class' => 'form-control')) !!}
        </div>
        <div class="form-group">
            <strong>Description:</strong>
            {!! Form::textarea('description', null, array('placeholder' => 'Description','class' => 'form-control')) !!}
        </div>
    </div> 
    <div class="col-xs-12 col-sm-12 col-md-12 text-center">
        <button type="submit" class="btn btn-primary">Submit</button>
    </div>
</div>
{!! Form::close() !!}
</div>

“name”的唯一验证工作正常,但不适用于“slug”。这真的很奇怪,我无法得到它。请提供解决此问题的建议。任何帮助都会很棒。

【问题讨论】:

  • 代码对我来说看起来不错。 “它不起作用”是什么意思?
  • 也提供html。
  • @MartinBean unique 不适用于“slug”。但要求正在工作。它的奇怪
  • 能否请您提供您正在尝试的 HTML 以及错误消息?
  • @RamChander 我已经编辑了帖子并添加了 html。

标签: php laravel


【解决方案1】:

您需要在唯一验证规则中指定数据库表中的列名

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

例如,slug 的列名是:column_slug

$this->validate($request, [
    'name' => 'required|unique:permissions,name',
    'slug' => 'required|unique:permissions,column_slug',   // column_slug  may be different in your case
]);

并确保您已为数据库表中的该列设置唯一键

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2014-03-09
    • 2019-03-24
    • 2019-03-29
    • 1970-01-01
    • 2020-08-02
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多