本文へ移動
Laravel Tips

チートシート

よく使う 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 はそこで止める)

全部の関数はヘルパー関数へ。

公式ドキュメント(英語)

2026年10月5日時点の内容をもとに、日本語でまとめています。

ページの一覧