環境
php 7.4.1
Mysql Ver 15.1 Distrib 10.4.11-MariaDB
Laravel 7.23.0
composer 1.10.9
Menu
モデルについて
・モデルのクラス名はデータベースのテーブル名の単数形にすると自動で紐づきます。
DBテーブル名→users(複数形)
Modelクラス名→user(単数形)
上記ののようにすれば自動で紐づきます。
コマンド(cmd/ターミナル)
1 | php artisan make:model Model/user |
このようにartisanコマンドを実行するとApp/Modelディレクトリの配下に
userクラスが作成され中身も自動で生成してくれます。
1 2 3 4 5 6 7 8 9 10 11 | <?php namespace App\Model; use Illuminate\Database\Eloquent\Model; class user extends Model { // } ?> |
User.phpの編集
今回は既存からあるUser.phpを編集していきたいと思います。
前回viewに追加した
姓(lastname)、名(firstname)、電話番号(tel)を$Fillableに追加します。
この設定で追加することで定義したものと違った情報のデータの挿入を防ぎます。
$Fillableは複数代入を許可するための設定です。
app\User.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | class User extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'lastname','firstname','tel', 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; } |
コントローラー(バリデータ)の編集
User.phpの$Fillableで追加した、
姓(lastname)、名(firstname)、電話番号(tel)をバリデータ設定します。
Validatorを編集する
文字数やrequiredなどのHTMLのフォームで編集する設定をここで編集します。
app\Http\Controllers\Auth\RegisterController.php
1 2 3 4 5 6 7 8 9 10 11 | protected function validator(array $data) { return Validator::make($data, [ 'lastname' => ['required', 'string', 'max:50'], 'firstname' => ['required', 'string', 'max:50'], 'tel' => ['required', 'string', 'max:20'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); } |
createを編集する
姓(lastname)、名(firstname)、電話番号(tel)を追加します。
‘カラム名’ => $data(‘カラム名’);
app\Http\Controllers\Auth\RegisterController.php
1 2 3 4 5 6 7 8 9 10 | protected function create(array $data) { return User::create([ 'lastname' => $data['lastname'], 'firstname' => $data['firstname'], 'tel' => $data['tel'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); } |
まとめ
モデルとコントローラーの編集は完了です。
次回最終回は実際に新規登録画面から登録してデータベースにちゃんと登録されるかをテストします。
【最終回】新規登録画面(Register)
以上です。