チートシート
よく使う Artisan コマンド、ルート、Blade、バリデーションのルール、Eloquent、マイグレーション、コレクション、ヘルパー関数の書き方を、1ページで引ける早見表です。
「あの書き方、なんだったっけ?」をすぐに思い出すための早見表です。よく使うものだけを選んでいます。全部の一覧や、くわしい使い方は、各表の下のリンク先にあります。
Artisan コマンド#
ターミナルで、プロジェクトのフォルダの中で実行します。
動かす・調べる#
| コマンド | すること |
|---|---|
composer run dev |
開発用のサーバー・キュー・ログ・Vite をまとめて動かす |
php artisan serve |
開発用のサーバーだけを動かす |
php artisan tinker |
ターミナルで PHP を1行ずつ試す |
php artisan route:list |
ルートの一覧を見る |
php artisan about |
アプリの設定や環境のあらましを見る |
php artisan test |
テストを動かす |
php artisan list make |
make: で作れるクラスの一覧を見る |
クラスやファイルを作る#
| コマンド | 作るもの |
|---|---|
php artisan make:model Memo |
モデル(-m でマイグレーションも、-mfs でファクトリとシーダーも) |
php artisan make:controller MemoController |
コントローラー(--resource で7つのメソッド入り) |
php artisan make:migration create_memos_table |
マイグレーション |
php artisan make:seeder MemoSeeder |
シーダー |
php artisan make:factory MemoFactory |
ファクトリ |
php artisan make:request StoreMemoRequest |
フォームリクエスト(バリデーションのクラス) |
php artisan make:middleware EnsureTokenIsValid |
ミドルウェア |
php artisan make:policy MemoPolicy |
ポリシー(認可のクラス) |
php artisan make:component Alert |
Blade のコンポーネント |
php artisan make:test MemoTest |
テスト |
php artisan make:mail OrderShipped |
メール(Mailable) |
php artisan make:job ProcessPodcast |
キューのジョブ |
php artisan make:command SendEmails |
自分の Artisan コマンド |
データベース#
| コマンド | すること |
|---|---|
php artisan migrate |
まだのマイグレーションを実行する |
php artisan migrate:status |
どのマイグレーションが実行済みかを見る |
php artisan migrate:rollback |
最後に実行したマイグレーションを元に戻す |
php artisan migrate:fresh |
表を全部消してから、マイグレーションを全部やり直す |
php artisan db:seed |
シーダーで最初のデータを入れる |
php artisan db:show |
データベースのあらましを見る |
php artisan db:table memos |
1つの表の列などを見る |
注意
migrate:fresh は、データベースの表を全部消します。入っていたデータもすべて消えるので、本番では使いません。
公開のとき・そのほか#
| コマンド | すること |
|---|---|
php artisan optimize |
設定・ルート・ビューなどをキャッシュして速くする |
php artisan optimize:clear |
上のキャッシュを消す |
php artisan storage:link |
public/storage から storage/app/public へのリンクを作る |
php artisan down / php artisan up |
メンテナンス中にする/元に戻す |
php artisan key:generate |
.env の APP_KEY を作る |
php artisan queue:work |
キューのジョブを動かす |
php artisan schedule:work |
手元で、タスクスケジュールを動かし続ける |
php artisan lang:publish |
言語のファイル(lang フォルダ)を作る |
くわしくは Artisan コマンドへ。
ルート(routes/web.php)#
php
use App\Http\Controllers\MemoController;
use Illuminate\Support\Facades\Route;
Route::get('/hello', function () {
return 'こんにちは';
});
// URL の一部を受け取る(? を付けると、無くてもよい)
Route::get('/user/{name?}', function (?string $name = null) {
return $name;
});
// コントローラーのメソッドに任せ、名前を付ける
Route::get('/memos', [MemoController::class, 'index'])->name('memos.index');
// 一覧・作成・保存・表示・編集・更新・削除の7つをまとめて作る
Route::resource('memos', MemoController::class);
| 書き方 | すること |
|---|---|
Route::get() など |
get・post・put・patch・delete・options で、リクエストの種類ごとにルートを作る |
Route::match(['get', 'post'], …) |
いくつかの種類に応えるルートを作る |
Route::any() |
どの種類にも応えるルートを作る |
Route::redirect('/here', '/there') |
別の URL へ移動させるだけのルート |
Route::view('/welcome', 'welcome') |
ビューを返すだけのルート |
->name('memos.index') |
ルートに名前を付ける |
->middleware('auth') |
ミドルウェアをかける |
->where('id', '[0-9]+')・->whereNumber('id') |
パラメータの形を決める |
Route::prefix('admin')->group(…) |
URL の頭をそろえたルートのまとまり |
Route::fallback(…) |
どのルートにも当たらないときのルート |
Blade#
| 書き方 | すること |
|---|---|
{{ $value }} |
値を出す(エスケープする) |
{!! $html !!} |
エスケープせずに出す(信用できる HTML だけに使う) |
{{-- コメント --}} |
Blade のコメント |
@if / @elseif / @else / @endif |
条件で出し分ける |
@unless / @endunless |
条件が成り立たないときに出す |
@isset / @empty |
値があるとき/空のときに出す |
@auth / @guest |
ログインしているとき/していないときに出す |
@foreach / @endforeach |
くり返す |
@forelse / @empty / @endforelse |
くり返す。空のときは @empty の部分を出す |
@for / @while |
回数や条件でくり返す |
$loop->iteration・$loop->first・$loop->last |
何回目か・最初か・最後か |
@include('partials.menu') |
ほかのビューを差しこむ |
<x-layout>・{{ $slot }} |
コンポーネントを使う・中身を差しこむ場所 |
@csrf |
フォームに CSRF の合言葉を入れる |
@method('PUT') |
フォームで PUT・PATCH・DELETE を送る |
@error('title') / @enderror |
その入力にエラーがあるときに出す(中で $message) |
@class([...]) |
条件で CSS のクラスを付け外しする |
@checked()・@selected() |
条件でチェックボックスや選択肢を選んだ状態にする |
@php / @endphp |
PHP をそのまま書く |
くわしくは Blade テンプレート・Blade コンポーネントとレイアウトへ。
バリデーションのよく使うルール#
php
$validated = $request->validate([
'title' => ['required', 'string', 'max:100'],
'email' => ['required', 'email', 'unique:users'],
'age' => ['nullable', 'integer', 'between:0,120'],
'password' => ['required', 'confirmed', 'min:8'],
]);
| ルール | 意味 |
|---|---|
required |
必ず入れる |
nullable |
空でもよい |
string・integer・numeric・boolean・array |
文字・整数・数・真偽・配列であること |
email・url・date |
メールアドレス・URL・日付の形であること |
max:100・min:8・between:1,10 |
大きさ(文字なら文字数)の上限・下限・範囲 |
in:a,b,c |
決めた値のどれかであること |
confirmed |
確認の入力(password_confirmation など)と同じであること |
unique:users |
その表に同じ値がまだ無いこと |
exists:users,id |
その表に、その値があること |
image・mimes:jpg,png・file |
画像・決めた種類のファイル・ファイルであること |
regex:/^[a-z]+$/ |
決めた形(正規表現)に合うこと |
sometimes |
入力があるときだけチェックする |
全部のルールはバリデーションのルール一覧へ。使い方はバリデーション(入力のチェック)へ。
Eloquent(モデル)#
php
use App\Models\Memo;
$memos = Memo::latest()->get(); // 新しい順に全部
$memo = Memo::findOrFail($id); // 1つ。無ければ 404
$memo = Memo::where('title', '牛乳')->first();
$memo = Memo::create(['title' => '牛乳', 'body' => '2本']);
$memo->update(['title' => '牛乳を買う']);
$memo->delete();
| 書き方 | すること |
|---|---|
Memo::all() |
全部取り出す |
Memo::find(1) |
id で1つ取り出す。無ければ null |
Memo::findOrFail(1) |
id で1つ取り出す。無ければ 404 にする |
Memo::where('列', '値') |
条件をつける(あとに ->get() や ->first()) |
->first()・->firstOrFail() |
最初の1つを取り出す(無ければ null/404) |
->get() |
当てはまるものを全部取り出す |
->orderBy('列', 'desc')・->latest() |
並べかえる・新しい順にする |
->count() |
数を数える |
->paginate(15) |
15件ずつのページに分けて取り出す |
Memo::create([...]) |
作って保存する(#[Fillable([...])] が要る) |
$memo->save() |
プロパティを書きかえたあとで保存する |
$memo->update([...]) |
書きかえて保存する |
$memo->delete()・Memo::destroy(1) |
消す |
Memo::firstOrCreate([...])・Memo::updateOrCreate([...], [...]) |
無ければ作る/あれば書きかえ、無ければ作る |
Memo::with('user')->get() |
つながった表のデータもまとめて読みこむ |
くわしくは Eloquent の基本・クエリビルダ・リレーション・ページ送りへ。
マイグレーションの列#
php
Schema::create('memos', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained();
$table->string('title');
$table->text('body')->nullable();
$table->boolean('done')->default(false);
$table->timestamps();
});
| 書き方 | 作る列 |
|---|---|
$table->id() |
自動で増える番号の id |
$table->string('title') |
短い文字 |
$table->text('body') |
長い文章 |
$table->integer('count') |
整数 |
$table->boolean('done') |
真偽(はい・いいえ) |
$table->date('day')・$table->dateTime('at') |
日付・日時 |
$table->timestamps() |
created_at と updated_at |
$table->softDeletes() |
消したことにする印の deleted_at |
$table->foreignId('user_id')->constrained() |
ほかの表(users)の id を指す列 |
->nullable() |
空(NULL)でもよい |
->default(値) |
何も入れないときの値 |
->unique() |
同じ値を2つ入れられない |
全部の型と修飾子はマイグレーションへ。
コレクション#
php
$memos = Memo::all();
$titles = $memos->pluck('title'); // タイトルだけ集める
$done = $memos->filter(fn ($memo) => $memo->done); // 条件に合うものだけ
$upper = collect(['a', 'b'])->map(fn ($s) => strtoupper($s)); // ['A', 'B']
| メソッド | すること |
|---|---|
map() |
1つずつ変えた、新しいコレクションを作る |
filter() |
条件に合うものだけを残す |
pluck('title') |
1つの項目だけを集める |
first()・last() |
最初・最後の1つ |
count()・sum('price')・avg('price') |
数・合計・平均 |
sortBy('title')・sortByDesc('title') |
並べかえる |
groupBy('category') |
項目ごとにまとめる |
each() |
1つずつ処理する |
isEmpty()・isNotEmpty() |
空か・空でないか |
toArray() |
ふつうの配列にする |
全部のメソッドはコレクションへ。
ヘルパー関数#
| 関数 | すること |
|---|---|
view('memos.index', [...]) |
ビューを返す |
route('memos.show', $memo) |
名前からルートの URL を作る |
url('/memos')・asset('img/logo.png') |
URL を作る・public の中のファイルの URL を作る |
redirect()->route('memos.index') |
別のページへ移動させる |
back() |
前のページへ戻す |
old('title') |
前の入力を取り出す |
session('status') |
セッションの値を取り出す |
config('app.timezone')・env('APP_DEBUG') |
設定の値・環境変数の値を取り出す |
request()・auth()->user() |
いまのリクエスト・ログイン中のユーザー |
now()・today() |
いまの日時・今日の日付 |
collect([...]) |
配列からコレクションを作る |
abort(404) |
エラーのレスポンスを返して止める |
__('messages.welcome') |
訳した言葉を取り出す |
dump($x)・dd($x) |
中身を見る(dd はそこで止める) |
全部の関数はヘルパー関数へ。
公式ドキュメント(英語)
- Artisan Console
- Routing
- Blade Templates
- Validation
- Eloquent: Getting Started
- Database: Migrations
- Collections
2026年10月5日時点の内容をもとに、日本語でまとめています。