質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

5818閲覧

cakePHP3 selectboxのdivタグを生成しないようにしたい

tundeco

総合スコア17

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2017/02/24 06:45

###実現したいこと
select使用時に余計なdivが入らないようにしたいです。

###発生している問題
現在、FormHelperのテンプレートを、cakePHP3のデフォルト設定を適用しないように、config内にapp_form.phpを用意して、CTPファイルではこちらを読み込むようにしています。

php

1<?php 2 return array( 3 'inputContainer' => '{{content}}', 4 'radioContainer' => '{{content}}', 5 'label' => false, 6)

画面作成時に下記のようなCTPを記述すると、

HTML

1 <div class="content-block"> 2 <?= $this->Form->label('label', ['text' => '金額']) ?> 3 <?= $this->Form->input('price', [ 4 'type' => 'select', 5 'id' => 'price', 6 'empty' => '金額を選択して下さい', 7 'options' => $price, 8 'class' => 'price', 9 'label' => false, 10 'div' => false]) ?><span> 千円</span> 11 </div>

HTMLが下記のように生成されます。
cake側で<div class="input select">が付加されているため、selectが横幅いっぱいに表示され、千円の部分が改行されてしまいます。

HTML

1<div class="content-block"> 2 <label for="label">金額</label> 3 <div class="input select"> 4 <select name="resource_price" id="resource_price" class="resource_price"> 5 <option value="">金額を選択して下さい</option><option value="01">40</option> 6 <option value="02">45</option> 7 <option value="03">50</option> 8 <option value="04">55</option> 9 <option value="05">60</option> 10 <option value="06">65</option> 11 </select> 12 </div><span> 千円</span> 13</div>

###アドバイス頂きたい事

<div class="input select">が出ないようにはどうすればよいか、アドバイスお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

テンプレートを使うようにApp\View\AppView.phpに設定はしていますか。手元の環境ではそれでうまくいきましたよ

php

1class AppView extends View 2{ 3 public function initialize() 4 { 5 $this->loadHelper('Form', [ 6 'templates' => 'app_form', 7 ]); 8 } 9}

参考:CakePHP3 のFormHelperが生成するHTMLをカスタマイズしたい

ただし、これだとすべての処理に影響してしまうので、個別に設定したほうがいいかもしれません。

php

1$myTemplates = array( 2 'inputContainer' => '{{content}}', 3 'radioContainer' => '{{content}}', 4 'label' => false, 5); 6$this->Form->templates($myTemplates);

参考:FormHelper で使用するテンプレートのカスタマイズ

投稿2017/02/24 08:12

編集2017/02/24 08:16
popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tundeco

2017/02/28 02:10

ご回答いただきありがとうございます。 まさにご指摘の通り、appview.phpのinitializeを設定していませんでした。 また、個別設定についてもアドバイス頂き、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問