エンジニア採用セミナー
エンジニア採用セミナー
2009.05.11

ヘルパーの意外な落とし穴・・・?

まっちー

前回、フォームのヘルパーを使えばsubmitボタンとend formタグが一行で書けると言ったけれど、これを使って書くと、自動的にdivで囲われることに気づいた。

<?php echo $form->end('送信') ?>

これは、HTMLで記述すると以下の内容になる。

<div class="submit"><input type="submit" value="送信"></div>

</form>

cakePHPが気を利かせて勝手にクラス化してくれるわけですね。これはこれで便利なのだけど、例えばボタンを2つ並べて表示したい場合、このdivのタグはいらない。ヘルパーのsubmitメソッドを使っても同様に勝手にdivで囲ってくれるので、そういう場合はやっぱり普通に自分でHTMLタグを記述することになってしまう。

echo $form->submit('戻る');

echo $form->submit('送信');

例えばこんな風に書いたとすると、両方のボタンがそれぞれdivで囲われ、ボタンは縦並びになってしまう。

<div class="submit"><input type="submit" value="戻る"></div>

<div class="submit"><input type="submit" value="送信"></div>

こんな具合に。別に縦並びでも構わないんじゃね? とか言われたら、まあ反論の余地はないんだけど・・・。