ルート→コントローラ→ビューの理解
Laravelの青本を進めてます。
ひとまずルート→コントローラ→ビューの理解を確認するために
http://localhost:8000/clcu/5
って入力すると画面に「25」が表示される簡単なWebアプリを作ってみました。
ルートの記述
Route::get('/calc/{num?}', 'HelloController@calc');
{num?}の部分が任意でパラメータを受け取れるようにしています。任意なので、http://localhost/calcuでもエラーとならずに動きます。
HelloController@calcの部分はHelloコントローラーのcalcアクションに記述してあることを実行するという意味です。
コントローラー名がHelloなのは、青本で作ったコントローラーを流用しているから。
コントローラの記述
public function calc($num='zero') { if (is_numeric($num)){ $data = [ 'kekka' => $num*$num]; } else { $data = [ 'kekka' => '数値にしてね']; } return view('hello.calculation', $data); }
calcアクションの記述です。
$num='zero'の部分は、URLでパラメータが指定されなかった時は文字列のzeroを入力するようにしています。
is_numericでパラメータに数値が入っているか評価しています。
例えばhttp://localhost/calc/sevenだと、$numにはsevenという文字列が入るので、elseの命令が実行されることになります。
view関数で、viewフォルダの中のhelloフォルダに格納されているcalculation.blade.phpを読み込んで、その内容を返します。
ちなみにview関数の戻り値は正確にはResponseインスタンスなんですが、詳細は割愛。
ビューの記述
<html> <head> <title>計算</title> </head> <body> <p>計算結果</p> {{$kekka}} </body> </html>
計算結果を画面に表示させます。
計算結果は{{$kekka}}の部分です。
まとめ
・ルートでWebブラウザに入力するURLからコントローラとアクションを特定
・URLの中のパラメータもアクションに渡す
・アクションは渡されたパラメータから計算処理を実施し、ビューに渡す
・ビューは結果を表示する
参考
ルート→コントローラ→ビューの流れについては別記事でも書いているので参考にしてください。