CakePHP の View 内のフォルダ名が規約違反でも通ってしまう問題を解決しました! | oki2a24 の次の投稿になります。
CakePHP Form ヘルパーによるフォーム生成を勉強します♪ | oki2a24 での課題、「$this->Form->label(name 属性で指定される名前) で「name 属性で指定される名前」を設定すると、画面に表示される文言も「name 属性で指定される名前」となってしまい、全角でラベルが表現できません。困りました!」を解決しました!やったね!です♪
ポイント
- ラベルタグ生成
$this->Form->label(name 属性で指定される名前, ラベル名)
前提
- CakePHP 2.1.3 導入済み。
- ドキュメントルート/cake/sample/(ここにCakePHP が入ってます。app ディレクトリとか、.travis.yml ファイルとか。)
ソース
CakePHP Form ヘルパーによるフォーム生成を勉強します♪ | oki2a24 と同じソースです、ただし一箇所、修正します。
cake/sample/app/View/Haskap/index.ctp
<h1>サンプルのハスカップ見出し!</h1> <p><?php echo $result; ?></p> <br /><br /> <?php echo $this->Form->create(false, array('type' => 'post', 'action' => '.')); ?> <?php echo $this->Form->text('HaskapForm.text1'); ?> <br /> <?php echo $this->Form->checkbox('HaskapForm.checkbox1', array('checked' => true)); ?> <?php echo $this->Form->label('HaskapForm.checkbox1', 'チェックボックス1'); ?> <br /> <?php echo $this->Form->radio('HaskapForm.radio1', array('ウィンドウズ' => 'windows', 'リナックス' => 'linux', 'マックOS' => 'macosx'), array('legend' => 'OSを選択', 'value' => 'リナックス') ); ?> <br /> <?php echo $this->Form->select('HaskapForm.select1', array('ウィンドウズ' => 'windows', 'リナックス' => 'linux', 'マックOS' => 'macosx'), array('empty' => '項目を選んでください') ); ?> <br /> <?php echo $this->Form->submit('送信!'); ?> <?php echo $this->Form->end(); ?>
結果
表示画面の HTML だけ記述します。
<label for="HaskapFormCheckbox1">チェックボックス1</label>
解説をすると、$this->Form->label関数の第1引数が「HaskapForm.checkbox1」で、第2引数が「チェックボックス1」です。
公式のドキュメントにも、使い方が明記されていますね。当たり前といえば、当たり前ですけれどもね。
引用します。
FormHelper::label(string $fieldName, string $text, array $options)¶
Create a label element. $fieldName is used for generating the DOM id. If $text is undefined, $fieldName will be used to inflect the label’s text:
<?php
echo $this->Form->label(‘User.name’);
echo $this->Form->label(‘User.name’, ‘Your username’);Output:
<label for=”UserName”>Name</label>
<label for=”UserName”>Your username</label>
$options can either be an array of html attributes, or a string that will be used as a classname:
<?php
echo $this->Form->label(‘User.name’, null, array(‘id’ => ‘user-label’));
echo $this->Form->label(‘User.name’, ‘Your username’, ‘highlight’);Output:
<label for=”UserName” id=”user-label”>Name</label>
<label for=”UserName” class=”highlight”>Your username</label>
「CakePHP2 の FormHelper::label 関数の使い方を学びます!」への2件の返信
[…] 投稿ナビゲーション ← 前へ […]
[…] CakePHP2 の FormHelper::label 関数の使い方を学びます! | oki2a24 […]