ヘルパーについて

symfony のテンプレート内で使うことのできる関数で、
基本的にはhtmlタグを生成する時に使用する。

ヘルパーを使う利点は、HTMLのコーディング量を減らせる点にある。
html の中にphp コードを含む箇所が少なくなるため見通しの点で有利。

使用するためには、(プロジェクト名)/app/(アプリケーション名)/config/settings.yml内の
all:内のno_script_nameをonにする。

1:Linkヘルパー
    <a href=""></a>をあらわす。
  <?php echo link_to(”表示文字列”,”URL”,”オプション”);?>の形で記述する。

   GETで値を渡したいときは、以下のように記述する。
 <php echo link_to("TOP","/",array("query_string" => "id=2"));?>
    ただ、複雑になる場合があるので、従来のHTMLで書いたほうが
    楽になるケースがある。

 (1):ルーティングについて(2012/03/23追記)
     (プロジェクト名)/app/(アプリケーション名)/config/routing.yml内に以下のように指定し、
     sample:
       url: /hoge/test
       param: { module: sample, action: index }

   <?php echo link_to("ここをクリック","@sample")?>と記述すると、
   指定されたルーティング先に遷移する。<?php echo link_to("ここをクリック","/hoge/test")?>
    と指定されたのと同様。YAMLを編集しているので、symfony ccを忘れないように。

2:フォームヘルパー

  <form></form>をあらわす。
  <?php echo form_tag("モジュール名/アクション名",オプションを配列で指定) ?>の形で記述する。

  [記述例] 
  <?php echo form_tag("member/edit","method=post multipart=true class=simpleFrom") ;?>
  </form>タグは自分で記述する必要があるので注意すること。

  (1):submit
          <?php echo submit_tag("ボタンに表示する文字列",オプションを配列で指定 ?>の形で記述する。

    [記述例]
           <?php echo submit_tag("送信する")?>
            nameを指定したい場合は、以下のように記述する。
           <?php echo submit_tag("送信する",array("name" => "(指定したい名前)"));?>

      (2):input
            <?php echo input_tag("フォーム項目名", "セットする値", オプションを配列で指定); ?>の形で記述する。

           [記述例]
            <?php echo input_tag("nickname", "", array("class" => "long", "size" => "60"));?>

   (3):textarea
             <?php echo textarea_tag("フォーム項目名", "セットする値", オプションを配列で指定) ?>の形で記述する。

            [記述例]
             <?php echo textarea_tag("context","hello",array("row"=>"10", "cols"=>"60"));?>

  (4):radio
             <?
php echo radiobutton_tag("フォーム項目名", 値, チェックされているかどうか
             (
trueであればチェック、falseであればチェックなし)) ?>の形で記述する。

            [記述例]
             <?php echo radiobutton_tag("radio","2",true);?>

       (5):checkbox
             <?php echo checkbox_tag("フォーム項目名", 値, チェックされているかどうか(trueであればチェック、falseであればチェックなし)) ?>の形で記述する。

            [記述例]
       <?php echo checkbox_tag("checkbox","a");?>

       (6):select
            <?php echo select_tag("フォーム項目名", options_for_select(リスト表示する項目を配列で指定,
             選択状態にする項目の値);) ?>の形で指定

             [記述例]
              <?php $pref = array(1 => "北海道",2 => "青森",3 => "秋田");?>
              <?php echo select_tag("pref",options_for_select($pref,"2"));?>

             先頭にブランクを表示させたいときは、
     <?php echo select_tag("pref",options_for_select($pref,"",array("include_blank" => true)));?>
             と指定する。
     先頭に「選択してください」を表示させたいときは、
             <?php echo select_tag("pref",options_for_select($pref,"",array("include_custom" => "選択してください")));?>
     と指定する。

    (7):file
             <?php echo input_file_tag("フォーム項目名") ?>の形で指定する。

     [記述例]
      <?php echo input_file_tag("photo")?>

    (8):image(ボタンをイメージで指定するとき)
             <?php echo submit_image_tag("ボタンとして表示する画像のパス") ?>の形で指定する。

     [記述例]
             <?php echo submit_image_tag("/images/42.jpg")?>

input_tag,textarea_tagについては、そのままだと、idとnameが同じ名前になる。
別々の名前を指定したいときは、オプション配列内で指定する。
指定方法はsubmitの部分と同様とする。

3:カスタムヘルパー
  ヘルパー内で使用できる関数のようなものである。
  (プロジェクト名)/lib/helper/(ヘルパーファイル名)で定義し、
  use_helper関数で定義する。(use_helper("(ヘルパーファイル名)"の形)
  ヘルパーファイル名はxxxxHelper.phpのxxxxの部分を指定する。

  [記述例]
      use_helper("MyUtility");


スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

e.swan

Author:e.swan
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR