Laravel 5 иногда проверяет правило - PullRequest
0 голосов
/ 17 мая 2018

Я хочу поместить данные в 2 таблицы в базе данных и использовать правило 'иногда' в laravel для некоторых переменных. Но ошибка выглядит так

SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'nik' не может быть пустым (SQL: вставить в bio (nik, nip, nidn, id_nipsp, updated_at, created_at) значения (,,, psp03052018qQT, 2018-05-17 02:40:53, 2018-05-17 02:40:53))

и данные просто отправляются в пользовательскую таблицу. что я должен делать? я иногда меняю на обнуляемую ошибку.

вот мой код

   public function store(Request $request){ 
        $input= $request->all();
        $validator = Validator::make($input, [
            'nipsp' => 'required|string|unique:user,nipsp',
            'name' => 'required|string',
            'nik' => 'sometimes|unique:bio,nik',
            'nip' => 'sometimes|unique:bio,nip',
            'nidn' => 'sometimes|unique:bio,nidn',
        ]);
        if ($validator->fails()) {
            return redirect('user/create')
            ->withInput()
            ->withErrors($validator);
        }
        $user = User::create($input);
        $bio = new Bio;
        $bio->nik = $request->input('nik');
        $bio->nip = $request->input('nip');
        $bio->nidn = $request->input('nidn');
        $user->bio()->save($bio);
        return redirect('user'); 
    } 

1 Ответ

0 голосов
/ 17 мая 2018

Поскольку столбец 'nik' не может быть null в вашей таблице БД, чем нужно required правило для nik вместо sometimes:

'nik' => 'required|unique:bio,nik'

или вам следует изменить столбец nik в вашей таблице, добавив возможность устанавливать значения null. Для других столбцов то же самое.

...