最近はバックエンド側も触れるようになりたいと思い、少ない時間を見つけて
自宅でlaravelをいじっております。
mvcの概念を頭に入れこむのに少し時間がかかりましたがおおよその流れだけは理解
できたのかなと感じています。とはいってもまだ覚える必要のあるものもたくさん
あるので忘れないように今回みたいにちょくちょく書いていきます。(でないと忘れるので)
という訳でルーティング処理の概念について少しおさらいします。
ルーティングというのは、各ページにて処理をあらかじめ決めておき、どのアドレスでどのような処理を
返すかを選定する決め事のようなものです。
書く場所としてはroutes/web.phpの中が適正です。つまり、このページを見ることで
処理をするページのアドレスと処理の内容(返す値)を一括で知ることが出来るので
いちいちページに行って確認する必要がなくなります。
ただ単純に文字列を返すだけだとこんな感じになります。
Route::get(<span class="hljs-string">'posts/{id}'</span>, <span class="hljs-function"><span class="hljs-keyword"> function</span> <span class="hljs-params">($id)</span> </span>{ <span class="hljs-keyword">return</span> <span class="hljs-string">'あなたのidは</span><span class="hljs-string">'</span>$id.<span class="hljs-string">'番です'</span>; } );
一つ目の引数にはアドレスの隣にページに渡す値を持たせています。保持することによって
このアドレスのページで受け取って使うことができます。
二つ目の引数は受け取った値で処理をした結果を持たせています。
ざっくり答えるとposts/{id}ページはidを教えてくれるページとなっており、受け取った
値によって結果を変える動的なファイルとなっています。
これだけでは実用性があるとまではいえないので、viewを返すルーティング処理を
書いていきます。
なんにもない普通のviewを返すコードです。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Laravel</title> </head> <body> <form> <h1>フォーム</h1> <div> <input type="text" placeholder="asaba"/> </div> <div> <textarea placeholder="お問い合わせ"></textarea> </div> </form> </body> </html>
ディレクトリは「resources/views/sample.blade.php」です。
(ここではBladeというテンプレートエンジンを使っていますが自分でも
まだわかっていない部分があるので割愛させていただきます。)
お次はまたルーティングを書いていきます。
Route::get('/sample', function() { return view('sample'); });
第一引数でパスを決めるとこまでは同じですが、returnの中ではviewそのもの
を返しているのが分かります。
これでhtmlひとかたまりを表示することはできました。後はこれとmvcを組み合わせてきれいな
コードを書きあげれば一歩踏み出したことになります。
今回はページをルーティングを使って値を返すだけの内容でしたが、いずれはmodelで
DBを操作したりcontorollerで非同期処理をしてみたりということも書けたらなと思っています。