Auth
のlaravel 5.3
をそのまま使用すると、avatar
フィールドを追加するにはどうすればよいですか? 私はこれが好きで、エラーがあります:laravel 5.3の `Auth`を使用する際に` avatar`フィールドを追加するには?
1、私はテーブル 'users'にファイルavatar
を追加しました。
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('avatar'); // add a `avatar` filed
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
2を、そして、テストレジスタは、エラーが発生した\App\Http\Controllers\Auth\RegisterController.php
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'avatar'=> '/images/avatar.png', //add a defalut value of `avatar`
]);
}
のcreate()メソッドにavatar
のdefalut値を追加します。
SQLSTATE[HY000]: General error: 1364 Field 'avatar' doesn't have a default value (SQL: insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) values (user01, [email protected], $2y$10$z4wtbQWbqU00000, 2016-12-07 19:31:09, 2016-12-07 19:31:09))
私はそれをデバッグしこのエラーは\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php
の次の行にあります。
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all()))); //the error occurs in this line
$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
どうすればよいですか?
ユーザーを保存する前に移行を実行しましたか? – rotvulpix
@rotvulpixいいえ、テーブルに追加した後に移行を実行しました。ユーザーテーブルの 'avatar'フィールドがあります。 – zwl1619