添加字段注册页面Laravel 5.4

时间:2017-02-20 01:14:08

标签: php laravel-5.4

我希望使用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的错误。似乎该值未发送到数据库。

任何修复/帮助? 感谢

3 个答案:

答案 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)

您在registercontroller.php上的

尝试使用

'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);