在设置值之前检查请求输入是否为空

dio*_*231 7 php null laravel eloquent lumen

我有一个设置用户设置的 API。因为两个输入都不是强制性的,所以我想先检查该值是否存在,然后将其设置为模型属性以避免空值。

$this->InputValidator->validate($request, [
                'firsname' => 'string',
                'lastname' => 'string',
                'email' => 'email',
                'mobile_phone' => 'string',
                'address' => 'string',
                'language' => 'string',
                'timezone' => 'string',
                'nationality' => 'string',
                'profile_photo' => 'url'
            ]);

            $userInformation = new UserInformation([
                'firstname' => $request->input('firstname'),
                'lastname' => $request->input('lastname'),
                'email' => $request->input('email'),
                'mobile_phone' => $request->input('mobile_phone'),
                'address' => $request->input('address'),
                'profile_photo' => $request->input('profile_photo')
            ]);
            $User->information()->save($userInformation);
Run Code Online (Sandbox Code Playgroud)

特别是当输入之一不存在时,我不想将其传递给模型。我也不想做需要的输入

Ach*_*dja 6

做这个

$userInformation = new UserInformation;

if(request->has('firstname')){
   $userInformation->firstname = $request->firstname;
}
if(request->has('lastnme')){
   $userInformation->lastname = $request->lastname;
}

 // do it for all

 $User->information()->save($userInformation);
Run Code Online (Sandbox Code Playgroud)

编辑:或者使用表单请求,这是更好的方法


Ahm*_*sef 6

这个问题的答案取自这里

if($request->filled('user_id'))
Run Code Online (Sandbox Code Playgroud)