* リンクヘルパー [#m2f7def0]
** URL・ルーティング [#z36da454]
 // 内部のURI構文
 <module>/<action>[?param1=value1][&param2=value2][&param3=value3]...
 // 内部URIの例で、エンドユーザーに決して表示されない
 article/permalink?year=2006&subject=finance&title=activity-breakdown
 // 外部URLの例で、エンドユーザーに表示される
 http://www.example.com/articles/finance/2006/activity-breakdown.html

- routing.yml
 article_by_title:
   url:    articles/:subject/:year/:title.html
   param:  { module: article, action: permalink }

- url_for()ヘルパーは内部URIを外部URLに変換する
 <a href="<?php echo url_for('article/permalink?subject=finance&year=2006&title=activity-breakdown') ?>">
   ここをクリック</a>
 // ヘルパーはURIがarticle_by_titleルールにマッチすることを見る
 // ルーティングシステムはそれから外部URLを作成する
 => <a href="http://www.example.com/articles/finance/2006/activity-breakdown.html">ここをクリック</a>
- link_to()ヘルパーは直接ハイパーリンクを出力し、PHPとHTMLを混在させることを回避する
 <?php echo link_to(
   'ここをクリック',
   'article/permalink?subject=finance&year=2006&title=activity-breakdown') ?>
 ) ?>
- 内部では、link_to()はurl_for()を呼び出すので結果はつぎのものと同じ
 => <a href="http://www.example.com/articles/finance/2006/activity-breakdown.html">ここをクリック</a>


*** Aタグ例 [#o1a6695c]
 <html><body>
 <?php echo link_to('Delete', 'author/delete?id='.$author->getId(), 
   array('post' => true, 'confirm' => 'Are you sure?')) ?>
 </body></html>

** フォームヘルパー [#pfd3d088]
*** フォームタグ [#e3141512]
 <?php echo form_tag('test/save') ?>
   => <form method="post" action="/path/to/save">
 <?php echo form_tag('test/save', 'method=get multipart=true class=simpleForm') ?>
   => <form method="get" enctype="multipart/form-data" class="simpleForm"action="/path/to/save">
閉じタグは</form>自分で。

** URL生成内部処理 [#h1489b6f]
- sfWebController::genUrl()
- http://www.symfony-project.org/api/1_4/sfWebController#method_genurl

** UrlHelperクラス [#nc69e487]
- link_to()やurl_for()など。
- http://www.symfony-project.org/api/1_4/UrlHelper

** 参考 [#z5ee34bc]
- http://develop.ddo.jp/symfony/book/jp/1.0/templating_link_helpers.html
- UrlHelperクラス http://www.symfony-project.org/api/1_4/UrlHelper

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS