🫐

Laravel11 modelコマンド

2024/12/16に公開

この記事は Laravel11にあるArtisanコマンドを全部調べる Advent Calendar 2024 16日目の記事です。

今回はmodelコマンドについて調べました。

環境

  • PHP 8.4.1
  • laravel/laravel 11.3.3
  • laravel/framework 11.33.2

model:prune

古いレコードを削除する。

php artisan model:prune

実行するとapp/Models配下にあるEloquentモデルクラスの古いレコードを削除します。

対象になるEloquentモデルクラスは次のトレイトを使い、prunableメソッドを実装しておく必要がある。

  • \Illuminate\Database\Eloquent\Prunable
  • \Illuminate\Database\Eloquent\MassPrunable
オプション 説明
--model[=MODEL] Eloquentモデルクラス名を指定
--except[=EXCEPT] Eloquentモデルクラス名を指定
--path[=PATH] Eloquentモデルクラスがあるディレクトリを絶対パスで指定
--chunk[=CHUNK] 1回の削除する件数
--pretend レコード数を確認
  • --modelを使って対象になるEloquentモデルクラス名を指定できます ※ 複数指定可能
  • --exceptを使って対象から除外するEloquentモデルクラス名を指定できます ※ 複数指定可能
  • --pathを使ってapp/Models以外のパスを指定できます ※ 複数指定可能
  • --chunkを使って1回の削除する件数を指定できます ※ デフォルトは1000件
  • --pretendを付けると削除はせずに削除対象のレコード数を確認できます

model:show

Eloquentモデルに関する情報を表示する。

php artisan model:show Eloquentモデルクラス名

実行するとEloquentモデルに関する情報を表示します。

引数 説明
model Eloquentモデルクラス名を指定
  • modelにはEloquentモデルクラス名を指定します
    • app/Models配下にあるEloquentモデルクラスを指定する場合はクラス名だけ、もしくはネームスペースの途中からの指定します
    php artisan model:show User
    
    php artisan model:show Eloquent\\User
    
    • app/Models配下以外にあるEloquentモデルクラスを指定する場合はフルネームスペースで指定します
    php artisan model:show App\\Database\\User
    
オプション 説明
--database[=DATABASE] 接続するデータベースを指定
--json JSON形式で表示
  • --databaseにはconfig/database.phpに書かれているデータベース接続名を指定できます
    未指定の場合はデフォルトのデータベースに接続します
  • --jsonを使うことでJSON形式で表示します
GitHubで編集を提案

Discussion