【发布时间】:2018-07-21 21:25:54
【问题描述】:
我正在使用 laravel 身份验证。在注册页面,用户需要填写姓名、姓氏、电子邮件和密码来创建帐户。稍后用户可以编辑他的个人资料帐户并插入更多信息,如地址、城市、邮政编码等,但创建帐户只需要姓名、姓氏、电子邮件和密码。
我使用 laravel auth 使用下面的代码构建上述逻辑,但在填写表单并单击“创建帐户”后出现错误:
SQLSTATE[HY000]:一般错误:1364 字段“facebook_id”没有默认值(SQL:插入users(name,email,password,updated_at,@987654326 @) 值 (...)
你知道下面代码的错误是什么吗?
路线:
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
用户表迁移:
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('facebook_id')->unique();
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->string('phone');
$table->dateTime('dateRegister');
$table->string('address');
$table->string('zipCode');
$table->string('city');
$table->timestamps();
});
}
}
用户模型:
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password', 'facebook_id', ''
];
protected $hidden = [
'password',
];
}
注册控制器:
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
class RegisterController extends Controller
{
use RegistersUsers;
protected $redirectTo = '/home';
public function __construct()
{
$this->middleware('guest');
}
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:6|confirmed',
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
}
【问题讨论】:
标签: laravel