【Laravel】テンプレートの使い方とコントローラーから値を渡す方法
Larabelにはテンプレートという仕組みが用意されていてコントローラーから呼び出すことができます。また、コントローラーから値を渡すこともできるので今回はそのあたりの基本を書き留めます。だんだんWordPressがどのように動いているのかわかってきました。
テンプレートを作成する場所
今回使うファイルは以下の通りです。hello/index.phpは今回新たに作ったファイルです。コントローラー(HelloCOntroller.php)はコマンドを使って作成するものですがその手順はこちらを参考にしてください。
テンプレートの基本形
hello/index.phpのソースコードはこちらです。単純なHTMLタグを記述しています。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello/Index</title> </head> <body> <h1>Hello/Index</h1> </body> </html>
HelloCOntroller.phpのソースコードはこちらです。前回まではここにHTMLタグを記述していましたが、それがそっくり上記のhello/index.phpに移ったわけです。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HelloController extends Controller{ public function index(){ return view('hello.index'); } }
最後にweb.phpですが、こちらは前回と変わりなく以下の1行を追加します。
Route::get('hello', 'App\Http\Controllers\HelloController@index');
実行結果
それでは実行してみましょう。以下のコマンドでサーバーを立ち上げます。
$ php artisan serve
ブラウザで http://127.0.0.1:8000/hello/ にアクセスして以下のように表示されたら成功です。
コントローラーから値を渡す方法
次にコントローラー(HelloCOntroller.php)からビュー(hello/index.php)に値を渡す方法です。
まずHelloCOntroller.phpですが、以下のような方法で値を渡します。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HelloController extends Controller{ public function index(){ $data = ['msg'=>'これはコントローラから渡されたメッセージです']; return view('hello.index', $data); } }
次に受け取る側のhello/index.phpは以下の通りとなります。HTMLタグ内に<?php … ?>の中にコードを挿入するという典型的なPHPのパターンです。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello/Index</title> </head> <body> <h1>Hello/Index</h1> <p><?php echo $msg ?></p> </body> </html>
ブラウザで表示させると以下の通りメッセージが送られていることがわかります。
スポンサーリンク