Laravelでリンクを作ってみたったw@改修ver
こないだコントローラーからビューを指定して
指定したビューを表示させるってことをやった。
下記がこないだやったやつ!!
Laravel4 コントローラーからビューに変数を渡したったw - 魔法使いの卵
じゃあ、たとえばindexっていうページからhelloってページへのリンクを
Laravelでやるためにはどうしたらええんかってところで試してみたw
ちなみにハマったw
ハマった理由は簡単でMVCをちゃんと理解してなくて
コントローラーとビューの役目が混同していたのが原因。
今回準備するものは
ビュー
index.blade.php
コントローラー
FrontController.php
を新しく作成する。
新しく追加する際にindexとFrontControllerへのルーティングを書かないとあかんから
ルーティングを変更しないとあかん。
自分の環境でいうと•••
Laravel4/app/routes.php
ここを編集する必要があるねん。
下記追加内容。
Route::get('/','FrontController@index');
意味としては一番上のディレクトリが呼び出されたらFrontControllerのindexっていう
メソッドをうごかしてくれよーってことをここでやってるやでぇ
じゃあ次はFrontControllerのindexがなにをしてるんや?ってところについてかくでー
public function index()
{
return View::make('index');
}
やってることは簡単でindexってメソッドが呼び出されたら
indexってビューをかえしてくれよーって指示を書いてるだけw
これでindex.blade.phpがブラウザに表示されるんやでー!!
で、最後にリンクをつくるってのが今回の目的やから
ビューを触らないとあかんでー!!
index.blade.php
に実際にリンク機能を実装するために編集するでー!!
今回は前回つくったhello.blade.phpに飛ばすリンクを書くんやでぇ
@extends('master')
@section('title')
目次
@stop
@section('body')
<a href="{{ action('HelloWorldController@index') }}">HelloWorld</a>
@stop
やってることはこれもまじで簡単でhtmlの
<a href = パス>表示させたい文言</a>
とやってることはおんなじ。ただ1つ違うのはパスじゃなくてコントローラーの
メソッドを指定してあげているってことだけ。
これでブラウザで確認すると
リンクになってるHelloWorldって文字が表示されるようになってるはず。
あとはそれをクリックすると前回作成したページ飛ぶことができるで!!
はい、リンクもすごい簡単にできちゃった!!
Laravelたんすごい・・・
追記:
twitterでアトバイスもらった!!
上記のようなめんどくさい書き方せんでも下記で
めっちゃシンプルにリンクつくれるでー!!
{{ link_to_action('HelloWorldController@index','HelloWorld') }}