[Zend Framework] Zend_View: url ヘルパークラスでリンクを生成する
Zend_View に付属しているヘルパークラスのひとつです。
記述が長くなりますが、起動する module/controller/action が明確になるメリットもあるので、リンクの記述は必ずヘルパーを使った方が良いと感じました。
参考サイト
基本の書き方
News コントローラの index アクションにリンクをはる例。
a タグのリンクと挙動は変わりません。
<li><a href="<?= $this->url(
array('controller' => 'news',
'action' => 'list',
'module' => 'default'),
'default');
?>">ニュース一覧</a></li>
最後の default がなにげに重要で、後述のルーティングを変更している場合に指定がないと、リンク先が変わってしまいました。
なお、option がいまいち理解できていません。
ルーティングを変更している場合
- Zend_Controller – ルーティングを変更して、任意のURIでアクセスできるようにする(1) | deadwood
- Zend_Controller – ルーティングを変更して、任意のURIでアクセスできるようにする(2) | deadwood
/auth/index へのアクセスを /login で可能にしています。
resources.router.routes.login.type = "Zend_Controller_Router_Route_Static"
resources.router.routes.login.route = "login"
resources.router.routes.login.defaults.module = "default"
resources.router.routes.login.defaults.controller = "auth"
resources.router.routes.login.defaults.action = "index"
コントローラ、アクションを指定することに変わりはありませんが、loginという名前を指定することによって、ルーティングの設定が反映されるようになります。
<a class="btn btn-large btn-success" href="<?=
$this->url(
array('controller' => 'auth',
'action' => 'index',
'module' => 'default'),
'login', true);
?>">ログインする</a>