魔法使いの卵

WEBエンジニアの卵の成長記録

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');

 意味としては一番上のディレクトリが呼び出されたらFrontControllerindexっていう

メソッドをうごかしてくれよーってことをここでやってるやでぇ

 

じゃあ次はFrontControllerindexがなにをしてるんや?ってところについてかくでー

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') }}