3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LaravelでModel,Controller,Migration,Seederファイル作成

Last updated at Posted at 2023-11-17

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
3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?