DBに値が入らない
laravel初心者です。
laravelにてmake:authで認証を作りました。そこに新たにカラムを追加しました。
しかし、登録をしても下記のようにエラーが発生します。
デフォルト値をどのようにしたら良いのか分かりません。
カラムにデフォルト値がありません
Illuminate\Database\QueryException SQLSTATE[HY000]: General error: 1364 Field 'name_kana' doesn't have a default value (SQL: insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) values (テスト太朗, zzz@gmail.com, $2y$10$.gxY.81pkBcRoWNszN4ZaeroiDjdCOBPcWudBjwFG3fmRP.j8uMK., 2021-01-20 18:33:08, 2021-01-20 18:33:08))
下記コードとスクショを掲載します
RegisterController.php protected function validator(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'name_kana' => ['required', 'string', 'max:255'], 'gender' => ['required','boolean'], 'age' => ['required','digits:2'], 'birthday' => ['required','integer'], 'postal_code' => ['required','digits:7'], 'address' => ['required','max:800'], 'phone' => ['required','digits_between:10,11'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); }
2021_01_20_115743_add_admin_to_users_table.php <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class AddAdminToUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('users', function (Blueprint $table) { // $table->string('name_kana')->after('name'); //氏名 カナ $table->boolean('gender')->after('name_kana'); // 性別 $table->tinyInteger('age')->after('gender');//年齢 $table->integer('birthday')->after('age');//誕生日 $table->integer('postal_code')->after('birthday');//郵便番号 $table->string('address')->after('postal_code');//住所 $table->integer('phone')->after('address');//電話番号 }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { // }); } }
2020_12_13_162253_create_admins_table.php <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateAdminsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('admins', function (Blueprint $table) { $table->bigIncrements('id'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('admins'); } }
register.blade.php @extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">{{ __('ご登録内容') }}</div> <div class="card-body"> <form method="POST" action="{{ route('register') }}"> @csrf <div class="form-group row"> <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('氏名') }}</label> <div class="col-md-6"> <input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus> @error('name') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> <div class="form-group row"> <label for="name_kana" class="col-md-4 col-form-label text-md-right">{{ __('氏名(カナ)') }}</label> <div class="col-md-6"> <input id="name_kana" type="text" class="form-control @error('name_kana') is-invalid @enderror" name="name_kana" value="{{ old('name_kana') }}" required autocomplete="name_kana" autofocus> @error('name_kana') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> <div class="form-group row"> <label for="gender" class="col-md-4 col-form-label text-md-right">{{ __('性別') }}</label> <div class="col-md-6"> <input type="radio" name="gender" value="0">男性 <input type="radio" name="gender" value="1">女性 </div> </div> //以下省略
###phpmyadminの画像です
###usersテーブルの中身です
phpmyadminを操作
デフォルト値をなしにしたら登録はできましたが値が全て0で保存されていました。
カラムの値、バリデーションが間違いがあるのでしょうか?
回答2件
あなたの回答
tips
プレビュー