2016-11-17 1 views
0

내가CakePHP의 3 양식 도우미 확인란 템플릿

<div class="form-group"> 
<input class="form-control" type="hidden" name="active" value="0"> 
    <label for="active"> 
    <input type="checkbox" name="active" value="1" id="active"> 
    Active 
    </label> 
</div> 
</div> 

같은 HTML을 생성하지만 내가 필요로하는 어떤

'checkbox' => '<input type="checkbox" name="{{name}}" value="{{value}}"{{attrs}}>', 
'checkboxWrapper' => '{{label}}', 

같은 순간에 보이는 체크 박스 템플릿을 변경하려고 코드해야 모양이

실제로 어떻게 변경해야합니까? 그리고 어떤 템플릿을 FormHelper 그래서 내가 필요로하는 것처럼 보이는 코드는?

+1

당신은 (http://book.cakephp.org/3.0/en/views/ [사용 FormHelper 템플릿을 사용자 정의]를 읽을 아마도했습니다 헬퍼/폼.html # customizing-the-templates-formhelper-uses) 문서를 참조하십시오. 시도한 코드를 보여 주시고 그 코드에 대해 제대로 작동하지 않는 사항을 알려주십시오. –

답변

2

nestingLabel 양식 서식 파일을 사용하여 확인란 레이아웃의 서식을 지정할 수 있습니다. {{input}}{{hidden}} 및 레이블

다음 확인란을 선택하십시오.

$this->Form->setTemplates([ 
     'nestingLabel' => '<div class="checkbox m-b-15">{{hidden}}<label{{attrs}}>{{input}}{{text}}</label></div>', 
]); 

참조 : vendor/cakephp/cakephp/src/View/Helper/FormHelper.php
protected $_defaultConfig = [...]

0

사용자 정의 위젯을 사용하여 사용자 지정 체크 박스, 텍스트 입력 등을 쓸 수 있습니다! 여기를 읽어 보시기 바랍니다 : https://book.cakephp.org/3.0/en/views/helpers/form.html#using-widgets

그래도 문제가 계속되면 내 사례를 언제든지 사용할 수 있습니다. 내가 완전히 의상을 입힌 체크 박스를 사용하고 있다는 것을 명심하십시오. css는 제공되지 않습니다. 이것은 어떻게 작동 하는지를 이해하는 데 도움이되는 예제 일뿐입니다.

당신이 필요가있는 무엇 :

  1. 가 렌더링 체크 박스 :
  2. 위해

에를 위젯

  • 로드 위젯
  • 로드 폼보기에서 템플릿 만들기 사용자 정의 체크 박스를 작성하면 BasicWidget을 확장하는 CustomCheckboxWidget 클래스를 만들어야합니다. 이제는 렌더링 기능을 사용자 정의하면됩니다.

    이 완벽한 예입니다 CustomCheckboxWidget

    * 당신은 초기화 기능에서 App.View.php

    'Form' => [ 
        'widgets' => [ 
        'custom' => ['App\View\Widget\CustomCheckboxWidget'] 
        ], 
    ], 
    

    에 다음 줄을 추가하여 위젯을로드 할 필요가 사용자 지정 서식 파일을 사용합니다. 당신이 양식 example.ctp을보기에서 ..

    단지 추가 :

    $this->Form->setTemplates([ 
        'checkbox' => '<div class="{{checkboxstyle}}">'. 
        '<input type="checkbox" name="{{name}}" id="{{name}}" value="{{value}}"{{attrs}}>'. 
        '<label for="{{name}}"><span class="{{bold}}">{{text}}{{icon}}</span></label>'. 
        '{{error}}'. 
        '</div>' 
    ]); 
    

    그리고 분명히 정의 확인란 렌더링 :

    <?= $this->Form->custom('field',[ 
        'hiddenField' => false, 
        'displayMessage' => true, 
        'checkboxstyle' => 'checkbox checkbox-danger', 
        'text' => 'Some label' 
        ]); 
    ?> 
    

    감사를