Я использовал команду auth для получения страниц входа и регистрации по умолчанию и изменил их, чтобы они соответствовали полям в моей базе данных.но когда я пытаюсь зарегистрироваться, я получаю сообщение об ошибке:
"SQLSTATE [HY000]: общая ошибка: 1364 Поле 'status' не имеет значения по умолчанию (SQL: вставить в users
(name
), email
, password
, updated_at
, created_at
) значения («имя», «электронная почта», «зашифрованный пароль», дата, дата)) «
Я попытался установить его напо умолчанию создать таблицу создания миграции, но проблема по-прежнему сохраняется:
$table->string('status')->default('unapproved');
Это мой контроллер регистра:
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
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:8', 'confirmed'],
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}
моя таблица миграции:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('status')->default('unapproved');
$table->boolean('is_active')->default(true);
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
}
И моя модель пользователя:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name',
'email',
'password',
'status',
'is_active',
];
protected $hidden = [
'password', 'remember_token',
];
protected $casts = [
'email_verified_at' => 'datetime',
];
}
Как я уже упоминал ранее, установив значение по умолчанию, я должен иметь возможность вставить пользователя в таблицу, но я получаю, что «Поле» статуса »не имеетошибка значения по умолчанию ", которая, как я полагаю, может произойти и с is_active, но она завершится неудачно, прежде чем доберется до нее