ウェブログラム ~学習するな実践せよ~

Laravelのルーティングの仕組みと一番簡単な使い方

回MVCについての説明をし、ビューとコントローラという概念が出てきました。

ここで学ぶルーティングは、実はビューとコントローラの間に位置するものになります。

ユーザからの色々なリクエストをLaravelのルーティングで受け取って、適切なコントローラへと受け渡します。

図で表すとこんなイメージですね。

今回はコントローラは使わず、いろいろなリクエストをしてルーティングされているかどうか見ていきましょう。

簡単なルーティングを実践

ルーティングは以下のweb.phpというファイルに記述していきます。

routes/web.php
<?php

Route::get('/', function () {
dd("ハロー"); // ddはvar_dump();してexit();という感じで、文字を表示して処理を停止させます。便利なので覚えましょう
});

ここで行っているのはGETメソッドで「/」にアクセスした時、「ハロー」と表示するということを行っています。

ブラウザ等で「/」にアクセスすると以下の通り表示されます。vagrantで環境を作っている人は「http://192.168.33.10:8080/」で、自分のPC上で環境を作った人は「http://localhost:8080/」でアクセス可能です。

 

ごく基本的なルーティング

3つだけごく基本的なルーティングついて抑えておきましょう。この入門編ではこのくらい理解しておけば問題ありません。

routes/web.php
<?php

Route::get('/users', function () {
dd("ユーザ一覧");
});

Route::get('/users/{name}', function ($name) {
dd("ユーザは$name");
});

Route::post('/users', function () {
dd("ユーザ登録");
});

1つ目

まず1つ目ははじめの例とやっていることは同じで、「/users」にアクセスしたら、「ユーザ一覧」という文字を表示するというものです。
これは簡単ですね。

2つ目

では2つ目。
これは「/users/〇〇」に来た〇〇を$nameという変数にいれて、文字を表示するというものです。
試しにブラウザで「/users/takeshi」とアクセスしてみましょう。以下のようになると思います。

ユーザの詳細ページなどを作る時、ユーザIDをよくこの形式で渡したりします。

3つ目

3つ目はどうでしょうか?
postが出てきました。1つ目2つ目はgetとなっています。このgetやpostというのはhttpメソッドと呼ばれ、getは主に参照系(ユーザ一覧ページ)、postは登録系(ユーザの登録)などに使われたりします。

ブラウザでURLにアクセスした時すべてのリクエストはgetとなります。postを使用するにはhtmlでフォームを作ったり、Javascriptでpost通信を行ったりする必要があります。

<form action="/users" method="post">
<button>送信</button>
</form>

実はLaravelはセキュリティの観点から、上のフォームではPOST通信が拒否されます。

トークンを仕込んで...みたいなことをするのですが、また後の記事で詳しく解説します。
ここでは、POSTを使ったルーティングも出来るということだけ覚えておきましょう。

ちなみにこの他にもhttpメソッドは以下などがあります。

  • get
  • post
  • delete
  • put
  • patch
  • options

よく使うのはget、post、delete、putくらいです。とりあえずgetとpostだけ覚えておけばOKです。

 

最後に3つのリクエストとルーティングをまとめると以下の動きになります。どういうリクエストがどういう動きをするのかしっかりと理解しましょう。

公式ドキュメントがとてもわかり易いので、もっと詳しく知りたい場合は以下を参考にしてください。

https://readouble.com/laravel/6.x/ja/routing.html

 

次回はルーティングからコントローラを使用していきます。