僕がよく使うartisanコマンド一覧
「よく使う」とか言いながら、何だっけってよく調べてる。
バージョン(version)
$ php artisan --version
Laravel Framework 5.6.14
一覧表示(list)
$ php artisan list
・・・コマンドがいっぱい・・・
利用方法検索(help)
$ php artisan help 調べたいコマンド
↓こんな感じ。
$ php artisan help make:controller
Usage:
make:controller [options] [--] <name>
Arguments:
name The name of the class
Options:
-m, --model[=MODEL] Generate a resource controller for the given model.
-r, --resource Generate a resource controller class.
-p, --parent[=PARENT] Generate a nested resource controller class.
--api Exclude the create and edit methods from the controller.
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--env[=ENV] The environment the command should run under
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Help:
Create a new controller class
起動(serve)
$ php artisan serve
Laravel development server started: <http://127.0.0.1:8000>
・・・↓アクセスするとこういうのが表示される・・・
[Fri Mar 30 15:25:54 2018] 127.0.0.1:52385 [200]: /favicon.ico
ちなみに既に起動していると(reason: Address already in use)
で弾かれます。当然ですね。
$ php artisan serve
Laravel development server started: <http://127.0.0.1:8000>
[Fri Mar 30 15:24:19 2018] Failed to listen on 127.0.0.1:8000 (reason: Address already in use)
$
ホストやポートを指定して起動
$ php artisan serve --host=127.0.0.1 --port=8000
利用できない指定をするとreason: Can't assign requested address
が出ます。
エラーメッセージが親切で嬉しいですね。
アプリケーションの命名(app)
デフォルトの名前空間App
を変えてニヤニヤしたい方はこちら。
$ php artisan app:name MyApp
Application namespace set!
The compiled services & packages files have been removed.
↑この例だとMyApp
に変更。
ルート一覧(route)
$ php artisan route:list
+--------+----------+----------+------+---------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+----------+------+---------+--------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
+--------+----------+----------+------+---------+--------------+
make系
↓大体この形。
$ php artisan meke:作りたい種類 ファイル名 --オプション
Controller
$ php artisan make:controller MyController
Controller created successfully.
リソースコントローラ
典型的な「CRUD」ルートが備わったコントローラの作成がしたい場合はこちら。
$ php artisan make:controller HogeController --resource
Controller created successfully.
さらにリソースモデルを指定したい場合はこちら。
$ php artisan make:controller HogeController --resource --model=Hoge
この時モデルがないと新しく作るか聞かれます。
$ php artisan make:controller HogeController --resource --model=Hoge
A App\Hoge model does not exist. Do you want to generate it? (yes/no) [yes]:
> y
Model created successfully.
Controller created successfully.
APIコントローラー
上記のリソースコントローラから描画用のメソッド(createとedit)を除いたAPI向けのコントローラを作る場合はこちら。
$ php artisan make:controller HogeController --api
Controller created successfully.
Model
$ php artisan make:model Hoge
Model created successfully.
全部乗せ
モデル用のリソースコントローラもマイグレーションもファクトリも欲しい腹ペコの皆さんはこちら。
$ php artisan make:model Hoge --all
Model created successfully.
Factory created successfully.
Created Migration: 2018_03_30_162214_create_hoges_table
Controller created successfully.
全部はいらないけど、という方のトッピングメニューはこちら。
--controller
--resource
--factory
--migration
Migration
$ php artisan make:migration create_hoges_table
Created Migration: 2018_03_30_163027_create_hoges_table
上記のようにオプション無しでcreate_[テーブル名]_table
とすると、
Schema::create('テーブル名', ・・・)
が自動的に生成されます。
--create
オプションを利用した場合も同様。
ちなみに、
モデルの命名はmake:model
の際は単数形、
make:migration
の際は複数系です。
定義変更
テーブル作成じゃなくて制約つけたりごにょごにょするためのマイグレーションファイルが欲しいんだという方はこちら。
$ php artisan make:migration alter_hoges_table --table=hoges
Created Migration: 2018_03_30_163521_alter_hoges_table
--table
オプションを使うとSchema::table('hoges', ・・・)
が生成されます。
Seeder
$ php artisan make:seeder HogesTableSeeder
Seeder created successfully.
マイグレーションとシーディングの実行
マイグレーション
$ php artisan migrate
Migrating: 2018_03_30_163027_create_hoges_table
Migrated: 2018_03_30_163027_create_hoges_table
シーディング
$ php artisan db:seed
Seeding: HogesTableSeeder
合わせ技
$ php artisan migrate:fresh --seed
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2018_03_30_163027_create_hoges_table
Migrated: 2018_03_30_163027_create_hoges_table
Seeding: HogesTableSeeder
migrate:fresh
はテーブルを全部消した後にマイグレーションファイルを実行。
--seed
はシーディングを実行。
テーブル消す必要はないよ、という場合はこちら
$ php artisan migrate --seed
最後に
結局list
とhelp
で大抵のことは解決するんですけどね。
その他便利なおすすめコマンドがあれば教えてください。
おしまい。