Я использую CakePHP 3.6 и добавляю некоторые классы (form-control form-control-sm
) к некоторым формам ввода с setTemplates
, как сказано в документе.Таким образом, я изменил теги input
и select
, сгенерированные Form->control()
, следующим образом
$this->Form->setTemplates([
'inputContainer' => '<div class="input form-group {{type}}{{required}}">{{content}}</div>',
'input' => '<input type="{{type}}" class="form-control form-control-sm" name="{{name}}"{{attrs}}/>',
'select' => '<select class="form-control form-control-sm" name="{{name}}"{{attrs}} />']);
echo $this->Form->control('name'); // This is an input
echo $this->Form->control('client_email_id'); // This is a select
Однако как я могу изменить шаблон (если это возможно), когда ассоциация belongsToMany
считается?Потому что помощник Form->control()
сгенерирует оба тега input
и select
, и кажется, что изменены только теги input
.Например,
echo $this->Form->control('projects._ids', ['options' => $projects]);
сгенерирует
<div class="input form-group select">
<label for="projects-ids">Projects</label>
<input type="hidden" class="form-control form-control-sm" name="projects[_ids]" value="">
<select name="projects[_ids][]" multiple="multiple" id="projects-ids">...</select>
</div>
Как видите, классы form-control form-control-sm
добавляются только к тегу input
, а не к тегу select
.Кто-нибудь знает, как я могу это сделать?
Я думаю, я мог бы создать совершенно новый шаблон, но я хочу знать, возможно ли это с помощью функции Form-control()
.