2016-12-22 6 views
0

Недавно я начал новый проект с использованием cakephp 3. Мне нужно создать конкретную форму для окна ввода, так как я использую AdminLTE V2. Администратор LTE требуется HTML выглядит следующим образомCakephp 3 form input div в div

<div class="form-group"> 
    <label for="inputEmail3" class="col-sm-2 control-label">Email</label> 

    <div class="col-sm-10"> 
     <input class="form-control" id="inputEmail3" placeholder="Email" type="email"> 
    </div> 
</div> 

У меня есть создать его следующим образом

<div class="form-group input text required"> 
    <label class="col-sm-3 control-label" for="full-name">Full Name</label> 
    <input type="text" name="full_name" class="form-control" required="required" maxlength="100" id="full-name"> 
</div> 

мне нужно, чтобы создать внутреннюю <div>. Как я могу это сделать? Пожалуйста помоги.

+0

Можете ли вы опубликовать код, который вы использовали в представлении, чтобы сгенерировать форму?. –

+0

Если вы знаете, что именно вам нужно, почему вы используете помощник формы каждый раз? Используйте этот html напрямую. –

ответ

3

Для этого CakePhp обеспечивает настройку шаблона FormHelper. Как и многие помощники в CakePHP, FormHelper использует строковые шаблоны для форматирования создаваемого HTML. Хотя шаблоны по умолчанию предназначены для разумного набора значений по умолчанию. Возможно, вам придется настроить шаблоны в соответствии с вашим приложением.

Ниже я настроил поле ввода в соответствии с AdminLTE.

echo $this->Form->input('email', [ 
'label' => ['text' => 'Email','class' => 'col-sm-2'], 
'templates' => [ 
'label' => '<label{{attrs}}>{{text}}</label>', 
'input' => '<div class="col-sm-10"><input type="{{type}}" name="{{name}}" {{attrs}}/></div>', 
'inputContainer' => '<div class="form-group {{type}}{{required}}">{{content}}</div>', 
'inputContainerError' => '<div class="form-group {{type}}{{required}} has-error">{{content}}{{error}}</div>', 
], 
]); 

Результат этого в теме AdminLTE следующий.

<div class="form-group text"> 
<label class="col-sm-2" for="email">Email</label> 
    <div class="col-sm-10"> 
     <input type="text" name="email" placeholder="Email" id="first-name"> 
    </div> 
</div> 
-1

Вы можете просто использовать простой html, как сказал @Manohar. Но если вы действительно предпочитаете синтаксис CakePHP, я использовать этот тип синтаксиса в моих проектах (ту же тему):

<div class="form-group"> 
<?php echo $this->Form->label('descricao', 'Descrição'); ?> 
<div class="col-sm-10"> 
    <?php echo $this->Form->input('descricao', ['label' => false, 'class' => 'form-control', 'placeholder' => "myPlaceHolder"]); ?> 
</div> 
</div> 

Вам может потребоваться некоторые дополнительные параметры, чтобы сделать именно то, что написано в чистом HTML версию кода. Вы можете проверить другие варианты форматов cakephp в его документации: http://book.cakephp.org/3.0/en/views/helpers/form.html#creating-form-inputs

0

Используйте друг торта начальной загрузки плагина доступен на https://github.com/friendsofcake/bootstrap-ui

Это уже включает в себя полную поддержку темы на основе начальной загрузки.

 Смежные вопросы

  • Нет связанных вопросов^_^