HTML помощник формы setTemplates для выбора ownToMany - PullRequest
0 голосов
/ 19 октября 2018

Я использую 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().

1 Ответ

0 голосов
/ 19 октября 2018

Волшебный ключ _ids вызывает создание множественного выбора, который имеет собственный шаблон, а именно selectMultiple, который по умолчанию выглядит следующим образом:

<select name="{{name}}[]" multiple="multiple"{{attrs}}>{{content}}</select>

Вам также придется изменить это значение.

ps, вы не можете использовать самозакрывающийся тег для элемента управления select, это приведет к неправильной генерации формы как существующему контенту ({{content}}) не будет отображаться!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...