カテゴリー
コンピューター

CakePHP2 の FormHelper::label 関数の使い方を学びます!

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件の返信

コメントを残す