Size: a a a

Laravel для начинающих

2020 September 09

Е

Евгений in Laravel для начинающих
так а как перехватить эту ошибку?
источник

EV

Evg V. in Laravel для начинающих
Евгений
нет, тогда прерывается выполнение кода, и выводит ошибку
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'somealias' for key 'marks_alias_unique'
Ты dd в самом начале контроллера поставь на реквесте и смотри что приходит)
источник

EV

Evg V. in Laravel для начинающих
Евгений
так а как перехватить эту ошибку?
Ну я хз какой контекст) но я так понял валидатор не должен пройти твой запрос )
источник

SG

Sergey Gerasimov in Laravel для начинающих
А порядок Валидаторов не имеет значение?
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
А порядок Валидаторов не имеет значение?
всмысле порядок валидаторов?
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
Подскажите, почему если заполнить поле name но не заполнить alias выдаёт предупреждение  "The alias must be a string." ?
           $table->id();
           $table->string('name',50);
           $table->string('alias',50)->unique();
           $table->timestamps();

   public function store(MarkRequest $request)
   {
       $mark = new Mark;
       $mark->name = $request->name;
       $mark->alias = !empty($request->alias) ? $request->alias : Str::slug($request->name);
       $mark->save();
       return redirect()->route('marks.edit', [
           'mark' => $mark->id,
       ])->withInput();
   }
class MarkRequest extends FormRequest
{
   public function rules()
   {

       return [
           'name' => 'string|max:50|required',
           'alias' => 'string|max:50|sometimes|unique:marks,alias'//.$id,
       ];
   }
}
как сделать проверку, что поле alias пустое?
А вообще sometimes работает как required в твоем случае
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
всмысле порядок валидаторов?
Это не к тебе вопрос
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
А вообще sometimes работает как required в твоем случае
я уже проверял разные варианты и без sometimes
источник

EV

Evg V. in Laravel для начинающих
Sergey Gerasimov
А порядок Валидаторов не имеет значение?
В смысле порядок ?
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
всмысле порядок валидаторов?
У тебя sometimes пропустил, потому что поле в запросе есть
источник

SG

Sergey Gerasimov in Laravel для начинающих
Evg V.
В смысле порядок ?
Ну то, что стринг первым у него идет
источник

EV

Evg V. in Laravel для начинающих
Sergey Gerasimov
Ну то, что стринг первым у него идет
Ну конечно имеет ) кстати...))
источник

SG

Sergey Gerasimov in Laravel для начинающих
Evg V.
Ну конечно имеет ) кстати...))
Я просто ни разу required/nullable в центр не пихал
источник

EV

Evg V. in Laravel для начинающих
Sergey Gerasimov
Я просто ни разу required/nullable в центр не пихал
Ну я sometimes пока не использовал не знаю даже как раьотает)

А вот то что нулл надо было сделать в пустую строку - было)
источник

Е

Евгений in Laravel для начинающих
Sergey Gerasimov
Ну то, что стринг первым у него идет
return [
           'name' => 'string|max:50|required',
           'alias' => 'unique:marks,alias|string|max:50',//.$id,
//            'alias' => 'unique:marks,alias|nullable|string|max:50',
       ];
так не исправило проблему
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
return [
           'name' => 'string|max:50|required',
           'alias' => 'unique:marks,alias|string|max:50',//.$id,
//            'alias' => 'unique:marks,alias|nullable|string|max:50',
       ];
так не исправило проблему
Ты её и не исправил. У тебя в запросе есть поле?
источник

SG

Sergey Gerasimov in Laravel для начинающих
Евгений
return [
           'name' => 'string|max:50|required',
           'alias' => 'unique:marks,alias|string|max:50',//.$id,
//            'alias' => 'unique:marks,alias|nullable|string|max:50',
       ];
так не исправило проблему
'alias' => 'nullable|string|max:50|unique:marks,alias'
источник

SG

Sergey Gerasimov in Laravel для начинающих
Так работает?
источник

Е

Евгений in Laravel для начинающих
нет
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'bmw' for key 'marks_alias_unique' (SQL: insert into marks (name, alias, updated_at, created_at)
источник

EV

Evg V. in Laravel для начинающих
Sergey Gerasimov
Так работает?
Это вопрос или утверждение ?)
источник