Я хочу добавить поле на своей странице регистрации, используя 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
, Кажется, что значение не отправляется в базу данных.
Любое исправление / помощь?
Спасибо
Используйте как это
$data['right_id'] = 0;
$data['password'] = bcrypt($data['password']);
return User::create($data);
Вы указали свой 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'
];
}
на вашем registercontroller.php попробуйте использовать
'right_id' => '0'
, вместо 'right_id' => 0
,
Если вы просто хотите иметь значение «0» в качестве значения по умолчанию для «right_id», вы также можете указать его в вашем creat_users_table.php следующим образом
$table->integer('right_id')->default(0);
Затем повторите миграцию