В вашем коде $request['role']
должно быть равно нулю, что вызывает проблему, поскольку поле role
не имеет значения Nullable.
Что вы можете сделать, это добавить значение dwfault, если роль равна нулю, просто Внесены следующие изменения в ваш код, и он должен работать.
public function store(Request $request)
{
//return ['message' => 'I have your data'];
$request->validate([
'firstname' => 'required|string|max:191',
'lastname' => 'required|string|max:191',
'email' => 'required|string|email|max:191|unique:users',
'password' => 'required|string|min:6',
]);
return User::create([
'firstname' => $request['firstname'],
'lastname' => $request['lastname'],
'email' => $request['email'],
'phone' => $request['phone'],
'role' => $request['role'] ?? 'Standard',
'usernotes' => $request['usernotes'],
'password' => Hash::make($request['password']), //make sure to import Hash: use Illuminate\Support\Facades\Hash;
'created_by' => $request['created_by'],
'updated_by' => $request['updated_by'],
]);
}
Это должно решить проблему.
Объяснение: Я использую оператор Null coalescing (??) для PHP, который будет замените нулевое значение на 'Standard'
. Работает только PHP 7+, если у вас более низкая версия PHP, то вы можете рассмотреть возможность использования троичного оператора (?:).
Ссылка: https://www.php.net/manual/en/migration70.new-features.php