LaravelでHello World

Laravel

とりあえずHello Worldを表示します。

環境

  • Laravel9.9 (sailで特に設定せずに作ったDockerコンテナ)

MVCの内のVだけ

LaravelはいわゆるMVC(Model+View+Controller)の考え方なんですが、とりあえずVだけでルーティング周りを確認しながらHello Worldを作ります。

ぶっちゃけHello WorldだけならViewもいらないのですが。

Route設定

ブラウザからの普通のHTTPリクエストに対しては”routes/web.php”に記述します。すでにwelcomeページのコードが書かれていると思います。

<?php

use Illuminate\Support\Facades\Route;

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

Routeがすでにややこしいのですが、今はこういう書き方するんだなで突破します。

Hello Worldをそのまま表示する場合は

Route::get('/hello', function () {
    return 'Hello World';
});

を追記すればOK。”localhost/hello”でアクセスできます。

これだけだと寂しいのでViewを使ってみましょう。対応するviewファイルは後で作ります。

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

もしくは代わりにviewメソッドを使ってもよいです。

Route::view('/hello', 'hello');

書いたらViewを作ります。

Viewの作成

“resources/views/hello.blade.php”に書いていきます。

bladeとはLaravelで採用されているテンプレートエンジンの名前です。

<!DOCTYPE html>
<html>

<body>
    <h1>Hello World</h1>
</body>

</html>

ざっくりと。

“localhost/hello”にアクセスすると出力できていると思います。

URLから値をとる

もう少し増やして”Hello {your name}”も作ります。

Route::get('/hello/{name}', function ($name) {
    return 'Hello ' . $name;
});

getの第一引数についてある{name}の部分が$nameに入るイメージです。変数名はそろえてなくても構いません。

ふたつ以上の場合も大体同じです。雑です。

Route::get('/hello/{name1}/{name2}', function ($name1, $name2) {
    return 'Hello ' . $name1 . $name2;
});

viewを使う場合は連想配列を使って

Route::get('/hello/{name}', function ($name) {
    return view('hello', ['name' => $name]);
});
<!DOCTYPE html>
<html>

<body>
    <h1>Hello {{$name}}</h1>
</body>

</html>

でviewに値を渡すことができます。

“localhost/hogehoge”等でアクセスして反映されてれば成功です。

お疲れさまでした

Route周りを掘り下げると山ほどあるのですが、必要になってからやるかなーって感じです。

参考文献

ルーティング 9.x Laravel

コメント

タイトルとURLをコピーしました