Laravel備忘録
コマンドを使ってファイルを作成する方法をまとめました。
目次
・Model
・Controller
・Request
・Migration
・Seeder
Model
php artisan make:model ファイル名
ファイル名の命名規則は アッパーキャメル
例) CompanyBranch
php artisan make:model CompanyBranch
作成されるファイル名 => CompanyBranch.php
Modelファイルの内容
コマンドを実行すると以下が書かれたphpファイルが生成されます。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class CompanyBranch extends Model
{
use HasFactory;
}
そこに色々と記述を追加していきます。
<?php
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
// ソフトデリートを使用するためのトレイトをインポート
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* App\Models\Event
*/
class CustomerAmount extends Model
{
// HasFactoryとSoftDeletesトレイトを使用する
use HasFactory, SoftDeletes;
// create()やfill()、update()で代入してはいけないカラムを指定する
protected $guarded = [];
// テーブル名を指定する
protected $table = 'customer_amount';
/**
* Carbonに変形
* @var array
*/
// 日付ミューテタを有効にする
protected $dates = [
'deleted_at',
];
/**
* The "booted" method of the model.
*
* @return void
*/
protected static function booted()
{
parent::boot();
}
}
Controller
php artisan make:controller ファイル名
ファイル名の命名規則は アッパーキャメル
ファイル名の最後に Controller をつける
例) CompanyBranch
php artisan make:controller CompanyBranchController
作成されるファイル名 => CompanyBranchController.php
Controllerファイルの内容
コマンドを実行すると以下の記述があるファイルが生成されます。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class testController extends Controller
{
//
}
色々と記述を追加していきますが、ここはキリがないので省略します。
Request
php artisan make:request ファイル名
ファイル名の命名規則は アッパーキャメル
ファイル名の最後に Request をつける
例) CompanyBranch
php artisan make:request CompanyBranchRequest
作成されるファイル名 => CompanyBranchRequest.php
Requestファイルの内容
コマンドを実行すると以下の記述があるファイルが生成されます。
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class testRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}
リクエストで送られてくるデータの型や必須、任意などを指定する場合は
returnの箇所に
'customer_id' => ['required', 'int', 'min:1'],
こんな感じで記述を追加していきます。
Migration
php artisan make:migration ファイル名 --create=テーブル名
ファイル名の命名規則は スネークケース
目的に沿ったファイル名にする
例) Customerテーブルを作成するMigrationファイル
php artisan make:migration create_customer_table --create=customers
作成されるファイル名 => 日付_create_customer_table.php
※日付はファイルを作成すると自動で付与されます。
Migrationファイルの内容
自動で作成されたphpファイルのSchemaの中コメント部分に記入する
以下サンプル
Schema::create('customers', function (Blueprint $table) {
$table->id();
$table->bigInteger('company_id');
$table->string('memo', 128)->nullable()->comment('メモ');
$table->timestamps();
$table->softDeletes();
});
カラムタイプ、カラム修飾子 一覧
Laravelドキュメント
最後に以下を実行してDBに反映させる
php artisan migrate:fresh --seed
migrateは過去の日付から順に実行されていくので、
複数のファイルで同じテーブル、カラムの変更をした場合は
最新の日付のmigrationファイルの変更が最終的にDBに反映されます。
=ポイント=
upメソッドのSchema::tableのクロージャの中には追加するカラムを記載
downメソッドのSchema::tableのクロージャの中にはロールバック時の処理を記述
既存のカラムを変更したい場合は以下のコマンドを実行して
変更用の追加のパッケージをインストールする
composer require doctrine/dbal
Seeder
php artisan make:seeder ファイル名
ファイル名の命名規則は アッパーキャメル
ファイル名の最後に Seeder をつける
例) CompanyBranch
php artisan make:seeder CompanyBranchSeeder
作成されるファイル名 => CompanyBranchSeeder.php
seederを実行する場合は以下のコマンドを実行
( php artisan db:seed --class=ファイル名 )
php artisan db:seed --class=CompanyBranchSeeder