Help us understand the problem. What is going on with this article?

[初心者向け] laravel ルーティング

ルーティング

アクセスしたアドレスを元に処理を割り振ること。

phpのときはwebappっていうフォルダの中にhello.phpファイルを用意すれば、http:〇〇_webapp/hello.phpでアクセスできましたが、
laravelでは特定のアドレスにアクセスすると、そのアドレスに割り当てられたプログラムが実行されます。
このように「〇〇というアドレスにアクセスしたら、✖️✖️という処理を呼び出す」
という関連付けを行っている機能。

routesフォルダにあるweb.phpを開きます。

web.php
<?php
Route::get('/', function () {
    return view('welcome');
});

これは、laravelのあの白いページを表示させる処理です。

ルートの情報の基本(GETアクセス)

Route::get(アドレス, 関数など);
getメソッドでアドレスと処理を割り当てる
第一引数:アドレス
第二引数:アドレスによって呼び出される処理(関数、コントローラーなど)

では、web.phpをみていきましょう。
第一引数は'/'でトップページを表していて、
第二引数は関数を指定しています。
内部では、returnで返り値を指定。返される値が、そのアドレスにアクセスした時に表示される内容。
view関数を使うことで「views」フォルダのテンプレートファイルを使用できる。
(viewsファイルはresourcesフォルダにあります)

では、welcome.blade.phpをみていきましょう。

スクリーンショット 2020-03-28 13.15.18.png

laravelのところなどを書き換えてみるとブラウザに反映されているのが分かります。
@で始まる文はHTMLでもPHPでもなく、Bladeというlaravelのソースコードです。
「view」フォルダの中にテンプレートファイルが用意されそれをview関数で読み込んでいます。

HTMLを出力する

次は実際に動かしてみましょう
routesフォルダのweb.phpを開いて以下を追加してください

web.php
<?php
Route::get('hello', function () {
    return '<html><body><h1>Hello</h1><p>This is sample page.
        </p></body></html>';
});

書いたら、htpp://localhost:8000/helloにアクセスをすると
スクリーンショット 2020-03-30 14.24.57.png
となれば成功です。

returnでHTMLのコードを直接渡すことで、そのソースコードがWebブラウザへと送られているのが分かります。

ルートパラメータ

Route::get('〇〇/{パラメータ}', function($受け取る引数){・・・});
getの第一引数に{パラメータ}とパラメータを指定し、関数に引数を用意することで、アクセスしたアドレスからパラメータを取り出せる。

web.php
<?php
Route::get('hello/{msg}',function($msg){
    $html = <<<EOF
    <html>
    <head>
    <title>Hello</title>
    </head>
    <body>
      <h1>Hello</h1>
      <p>{$msg}</p>
      <p>これはサンプルページで作ったページです。</p>
    </body>
    </html>
    EOF;

      return $html;
});

スクリーンショット 2020-03-30 15.17.10.png

今回はlocalhost:8000/hello/の後にaaaaaと入力しました。
そうすると$msgにパラメータが代入され、表示されています。

先ほどのは必須パラメータといいパラメータを指定しないとエラーになります。
パラメーターをつけなくてもアクセスできるようにするには、任意パラメータを使いましょう。

web.php
<?php
Route::get('hello/{msg?}',function($msg='no massage.'){ ・・・・

とパラメータに「?」を付け、$msgに初期値を与えるとパラメータがなくてもアクセスできます。
スクリーンショット 2020-03-30 15.24.59.png

となれば成功です。

yuki_911
PHP勉強中の初心者です! ポートフォリオ作成の過程で勉強になったことや気付いたことをまとめていきます!!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした