Проверка Laravel с уникальными полями - PullRequest
0 голосов
/ 07 сентября 2018

Я пробовал уникальную проверку в 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'. Это действительно странно, я не могу получить это. Пожалуйста, предоставьте предложения, чтобы решить эту проблему. Любая помощь будет великолепна.

1 Ответ

0 голосов
/ 07 сентября 2018

Вам необходимо указать имя столбца из таблицы базы данных в уникальном правиле проверки

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
]);

И убедитесь, что вы установили уникальный ключ для этого столбца в таблице базы данных

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...