CakePHPを勉強中で参考書「PHP フレームワーク CakePHP3入門」を進めているのですが、Formヘルパーのラベル設定についてお聞きしたいことがあります。
参考書には下記記述で、チェックボックスに対してラベルを設定するという内容なのですが、下記内容を入力してもチェックボックスにidが付与されずラベルの「for」と一致せず正常に動作しませんでした。
サンプルコードをコピペしてみたのですが、同様にidが付与されず動作しませんでした。
■参考書コード
<?=$this->Form->create(null, ['type'=>'post', 'url'=>['action'=>'index']]) ?> <?=$this->Form->checkbox("HelloForm.check1", ['checked'=>true]) ?> <?=$this->Form->label('HelloForm.check1') ?> <?=$this->Form->submit("送信") ?> <?=$this->Form->end(); ?>
■参考書出力例
<form action="/cake3app/hello/." id="Form" method="post" accept-charset="utf-8"> <div style="display:none;"> <input type="hidden" name="_method" value="POST"/> </div> <input type="hidden" name="data[HelloForm][check1]" id="HelloFormCheck1_" value="0"/> <input type="checkbox" name="data[HelloForm][check1]" checked="checked" value="1" id="HelloFormCheck1"/> <label for="HelloFormCheck1">Check1</label> <div class="submit"> <input type="submit" value="送信"/> </div> </form>
■自分が入力した場合の出力例
<form method="post" accept-charset="utf-8" action="/cake3app/hello"> <div style="display:none;"> <input type="hidden" name="_method" value="POST"> <input type="hidden" name="_csrfToken" autocomplete="off" value="031cda5ec8138bc1b0cc5c4f8143bead3f9ef67b7c5e7e2bc43c19bb54ecbf6ff3fc98eb93afe0a57d518093f1927e8b0c7d4548e83e48eac4accf7e82e2f967"> </div> <input type="hidden" name="HelloForm[check1]" value="0"> <input type="checkbox" name="HelloForm[check1]" value="1" checked="checked"> <label for="hellofrom-check1">Check1</label> <div class="submit"><input type="submit" value="送信"> </div> </form>
調べたところチェックボックスに直接idを指定する方法があったので、下記コードを入力したところ、チェックボックスにidが付与されてラベルも動作するようになりました。
<?= $this->Form->create(null, ['type'=>'post', 'url'=>['controller'=>'Hello','action'=>'index']]) ?> <?= $this->Form->checkbox("HelloForm.check1", ['id'=>'hellofrom-check1']); ?> <?= $this->Form->label('HelloFrom.check1'); ?> <?= $this->Form->submit("送信"); ?> <?= $this->Form->end(); ?>
ちなみに参考書のCakePHPのバージョンは「3.3.5」で私が使用しているCakePHPのバージョンは「3.8.13」です。
バージョンによってラベルの仕様が変わっていて参考書のコードが動作しないのでしょうか?
それとも単純に参考書コードに誤りがあるのでしょうか?
バージョン違いについて調べたのですが、言及している情報が見つからず質問させていただきました。
ご教授いただければ幸いです。
あなたの回答
tips
プレビュー