CakePHP 3 меняет шаблон ввода радио

Cakephp 3 создает радио-контейнер с меткой -> такой ввод

<div class="radio">
    <label class="radio-acces-checked" for="condition-access-1">
      <input id="condition-access-1" type="radio" value="1" name="condition_access">
      Free access
    </label>
</div>
...

Я хотел бы изменить структуру, но это не работает, это всегда одна и та же структура... У вас есть идеи о том, как решить мою проблему?

$myTemplates = [
  'radioWrapper' => '<div class="radio">{{label}}{{input}}</div>'
];
echo $this->Form->radio('condition_access', [
      ['value' => 1, 'text' => __('Free Access')],
      ['value' => 2, 'text' => __('Payment Access')],
      ['value' => 3, 'text' => __('Reduce price')]
    ]);

person jlafforgue    schedule 11.01.2016    source источник
comment
Где установить шаблон?   -  person Holt    schedule 12.01.2016


Ответы (1)


Вам нужно установить шаблон nestingLabel:

echo $this->Form->input('condition_access', [
    'type' => 'radio',
    'options' => [
        ['value' => 1, 'text' => __('Free Access')],
        ['value' => 2, 'text' => __('Payment Access')],
        ['value' => 3, 'text' => __('Reduce price')]
    ],
    'templates' => [
        'nestingLabel' => '{{hidden}}<label{{attrs}}>{{text}}</label>{{input}}',
        'radioWrapper' => '<div class="radio">{{label}}</div>'
    ]
]);

Выход:

<div class="input radio">
    <label>Condition Access</label>
    <input name="condition_access" value="" type="hidden">
    <div class="radio">
        <label for="condition-access-1">Free Access</label>
        <input name="condition_access" value="1" id="condition-access-1" type="radio">
    </div>
    <div class="radio">
        <label for="condition-access-2">Payment Access</label>
        <input name="condition_access" value="2" id="condition-access-2" type="radio">
    </div>
    <div class="radio">
        <label for="condition-access-3">Reduce price</label>
        <input name="condition_access" value="3" id="condition-access-3" type="radio">
    </div>
</div>
person Holt    schedule 12.01.2016
comment
Есть ли способ поместить немного HTML в шаблоны, чтобы я мог сделать что-то лучше в метках? книга. cakephp.org/3.0/en/views/helpers/ {{input}}‹label{{attrs}}›{{text}} {{НЕКОТОРЫЙ HTML}}‹/label› - person Patrice Poliquin; 06.10.2016
comment
@PatricePoliquin Вы можете добавлять в шаблоны все, что хотите, если это не мешает работе механизма шаблонов (например, избегайте использования {{ или }}). - person Holt; 06.10.2016
comment
@Holt Могу ли я добавить дополнительный HTML-код после каждого {{text}} (‹label for=condition-access-1›Pay Access ‹b›$1,00 в месяц ‹/label›)? - person Patrice Poliquin; 26.10.2016