Laravelのルーティングの書き方を10分でサクッと学ぶ

こんにちは。今回はLaravelのルーティングの書き方をサクッと解説したいと思います。初心者の方でも10分でなんとなくわかった気になれるような内容です。

環境

  • laravel8

ルーティングを書くファイル

ルーティングを記述するphpファイルについて解説します。記述するのは以下の2ファイルです。

  • routes/web.php
  • routes/api.php

利用用途によってどちらにルーティングを記述するかを判断します。判断基準は以下の通り。

web.php Laravelで構築したWEBアプリケーションからのリクエストはこちらでルーティングします。

api.php APIを外部公開する場合はこちらに記述します。他システムからのAPIアクセスを捌く場合に使用します。

ルーティングの書き方

基本

URL毎に1行ずつ記述します。Routeファサードを利用します。基本的な構文は以下。

// 基本的な構文
Route::[httpメソッド]([第一引数:URL],[第二引数:処理])

第二引数の処理の部分には、ルーティング対象の処理を記述します。処理の記述方法は2種類あります。

  • 無名関数(クロージャ)を指定して、ルーティングのファイル内に処理を書く
  • コントローラを呼び出す

通常、アプリ開発で使用するのは後者のコントローラ呼び出しです。クロージャを多用するとルーティングのファイルが肥大化し、コードの見通しが非常に悪くなるからです。クロージャは、コントローラを使用するほどでもないごく簡単な処理の場合のみ使用しましょう。(単純に画面を返すだけ、等)

ルーティングの書き方(用途別)

ここからは用途別にルーティングの書き方を紹介します。

ビューを返す

ビューを返すことでWEBページを表示することができます。viewヘルパ関数をそのままreturnします。

Route::get('/', function () {
    return view('welcome');
});

コントローラを呼び出す

第二引数にコントローラを指定します。コントローラはuseを使用して参照することを忘れないようにしましょう。コントローラは配列形式で指定し、2要素目はコントローラのメソッドを文字列で指定します。

use App\Http\Controllers\SampleController;

// SampleControllerのgetJsonメソッドを呼び出しています。
Route::post('sample', [SampleController::class, 'getJson']);

JSONを返す

最後にJSONを返す方法です。これはWebAPIで必要になる形式ですね。JSONを返す方法は2種類あります。1つ目は配列を返す方法、2つ目はEloquentモデルを返す方法です。どちらもLaravelが自動でJSONに変換してくれるので嬉しいですね。

// 配列を返す
Route::get('sample', function(){
    return ['1', '2']
});

// Eloquentモデルを返す
Route::get('user', function(){
    return App\Models\Article::find(1);
});

まとめ

今回はルーティングの書き方をサクッと説明しました。今回紹介した用途3種類で書き方の90%はカバーできます。覚えることもそこまで多くないので暗記して、スムーズに使えるようになりましょう。ではまたよろしくおねがいします。

Laravel

Posted by kobainmac