59
задан 26 October 2016 в 21:10

3 ответа

public function rules()
{
    if ($this->method() == 'PUT') {
        $post_id = $this->segment(3);
        $rules = [
            'post_title' => 'required|unique:posts,post_title,' . $post_id
        ];
    } else {
        $rules = [
            'post_title' => 'required|unique:posts,post_title'
        ];
    }
    return $rules;
}
0
ответ дан 1 November 2019 в 11:17

Laravel 5.8, простой и легкий

, можно сделать это все в запросе формы с вполне приятно...

первый делают поле, которым можно передать идентификатор (невидимый) в нормальной форме редактирования. т.е.

 <div class="form-group d-none">
      <input class="form-control" name="id" type="text" value="{{ $example->id }}" >
 </div>

... Затем обязательно добавьте, что класс Правила к Вашей форме запрашивает как так:

use Illuminate\Validation\Rule;

... Добавьте Уникальное правило, игнорирующее ток, который я хотел бы так:

public function rules()
{
    return [
          'example_field_1'  => ['required', Rule::unique('example_table')->ignore($this->id)],
          'example_field_2'  => 'required',

    ];

... Наконец введите подсказку запрос формы в методе обновления то же, поскольку Вы были бы метод хранилища, как так:

 public function update(ExampleValidation $request, Examle $example)
{
    $example->example_field_1 = $request->example_field_1;
    ...
    $example->save();

    $message = "The aircraft was successully updated";


    return  back()->with('status', $message);


}

Этот путь Вы не повторите код излишне :-)

0
ответ дан 1 November 2019 в 11:17

Для пользовательского FormRequest и Laravel 5.7 + можно получить идентификатор обновленной модели как это:

public function rules()
    {
        return [
            'name' => 'required|min:5|max:255|unique:schools,name,'.\Request::instance()->id
        ];
    }
0
ответ дан 1 November 2019 в 11:17

Другие вопросы по тегам:

Похожие вопросы: