6-2
讓新增的欄位可以寫入資料庫
- 有了新欄位,我們得讓使用者註冊時,可以把新欄位也寫入資料庫。
- 開啟
\專案\app\Http\Controllers\Auth\RegisterController.php
,我們來修改其控制器
- 先修改資料檢查的部份(完整規則請參考:https://learnku.com/docs/laravel/5.8/validation/3899#available-validation-rules)
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
'address' => ['required', 'string', 'max:255'],
'tel' => ['required', 'string', 'max:255'],
]);
}
- 再修改寫入資料的部份
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'address' => $data['address'],
'tel' => $data['tel'],
]);
}
- 然後修改User模型,編輯
\專案\app\User.php
,使之可以批次賦值(一定要做,否則會出錯),關於批次賦值請參考:https://learnku.com/docs/laravel/5.8/eloquent/3931#mass-assignment
protected $fillable = [
'name', 'email', 'password', 'address', 'tel',
];
- 最後就可以重新註冊一個使用者囉!註冊完應該就可以看到地址、電話已經寫入了。