我希望使用Laravel Auth在我的注册页面上添加一个字段。 基本用户表包含名称,电子邮件,密码。 我想添加一个正确的字段。
因此,我已将create_users_table.php
迁移文件编辑为
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->integer('right_id');
$table->rememberToken();
$table->timestamps();
});
}
和我的registercontroller.php
到
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'right_id' => 0,
'password' => bcrypt($data['password']),
]);
}
但它不起作用。我仍然有关于right_id
的错误。似乎该值未发送到数据库。
任何修复/帮助? 感谢
答案 0 :(得分:4)
您是否在right_id
模型类中指定了User
,如下面的代码示例?如果您忘记在$fillable
中声明附加字段,则该值将不会保存到数据库中。
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'right_id'
];
}
答案 1 :(得分:0)
尝试使用
'right_id' => '0'
,而不是'right_id' => 0
,
如果您只想将'0'作为'right_id'的默认值,您也可以在您的creat_users_table.php上指定它,就像这样
$table->integer('right_id')->default(0);
然后重做迁移
答案 2 :(得分:0)
像这样使用
$data['right_id'] = 0;
$data['password'] = bcrypt($data['password']);
return User::create($data);