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
值的可能性。对于其他列相同。
我想将数据放入数据库中的 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
值的可能性。对于其他列相同。