【问题标题】:Laravel 5 sometimes validation ruleLaravel 5 有时验证规则
【发布时间】:2018-05-17 03:05:23
【问题描述】:

我想将数据放入数据库中的 2 个表中,并在 laravel 中对某些变量使用规则“有时”。但是错误看起来像这样

SQLSTATE[23000]:完整性约束违规:1048 列“nik”不能为空(SQL:插入bioniknipnidnid_nipspupdated_at,@ 987654327@) 值 (, , , 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'); 
    } 

【问题讨论】:

    标签: validation laravel-5 rules


    【解决方案1】:

    由于数据库表中的列 'nik' 不能是 null,因此您需要 required 规则,而不是 nik,而不是 sometimes

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

    或者您应该修改表中的nik 列,增加设置null 值的可能性。其他列也一样。

    【讨论】:

    • 好的,谢谢先生,我更喜欢修改表格而不是更改规则
    猜你喜欢
    • 1970-01-01
    • 2016-04-30
    • 2016-05-13
    • 1970-01-01
    • 2021-03-01
    • 2018-04-18
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    相关资源
    最近更新 更多