Laravel 5 有时验证规则

Laravel 5 sometimes validation rule

我想将数据放入数据库中的 2 table 中,并在某些变量上使用 laravel 中的规则 'sometimes'。但是报错是这样的

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'nik' cannot be null (SQL: insert into bio (nik, nip, nidn, id_nipsp, updated_at, created_at) values (, , , psp03052018qQT, 2018-05-17 02:40:53, 2018-05-17 02:40:53))

并且数据直接转到用户 table。我应该怎么办?我有时更改为可空也错误。

这是我的代码

   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'); 
    } 

因为列 'nik' 在您的数据库 table 中不能是 null,所以您需要 required 规则 nik 而不是 sometimes

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

或者您应该修改 table 中的 nik 列,添加设置 null 值的可能性。对于其他列相同。