Posted at

僕がよく使うartisanコマンド一覧

More than 1 year has passed since last update.


僕がよく使う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


最後に

結局listhelpで大抵のことは解決するんですけどね。

その他便利なおすすめコマンドがあれば教えてください。

おしまい。