2012-11-16 3 views
0

입력란에 연결되지 않은 레이블과 실제 입력을 제어하는 ​​확인란 뒤에 레이블이있는 확인란을 만들려고합니다. 이 페이지에 다음과 같아야합니다CakePHP - 레이블의 "for"속성을 변경하십시오.

Account Suspended: [X] Prevent the user from logging in 

view.ctp

$this->Form->label('Account Suspended'); 
$this->Form->input('account_suspended', array(
    'type' => 'checkbox', 
    'label' => 'Prevent the user from logging in' 
)); 

나는 순간에 데 문제는 첫 번째 레이블이 자동으로 생성 for 속성으로 생성되는 것입니다 이는 입력 ID와 일치하므로 클릭하면 두 레이블이 모두 체크 박스를 토글합니다.

<label for="CustomerAccountSuspended">Account Suspended:</label> 

내가 첫 번째 레이블 단지가되고 싶어요 : 자동으로 for 속성에 대한 낙타의 경우 ID로 레이블 값을 변환하기 때문에 첫 번째 레이블에 대한

CakePHP의 생성 된 태그는 다음과 같습니다 :

<label>Account Suspended:</label> 

어떻게해야합니까?

답변

2

그것은 가능 :

echo $this->Form->label('Account Suspended', null, array('for' => false)); 

번역을 사용하는 것을 잊지 마십시오 : P는 거의 모든 코드의 모든 부분이 재사용 .

+0

감사합니다. 두 번째 매개 변수로 'null'을 사용하지 않고 작동하지 않았습니다. – BadHorsie

+0

문제 없습니다. 때로는 cakephp의 소스 파일을 살펴 보는 것이 도움이됩니다. 일들이 어떻게 작동 하는지를 볼 수 있고 문서에서보다 빨리 기능을 찾을 수 있습니다. 때로는 완벽하게 문서화되지 않았거나 기능이 누락 된 기능을 찾을 수 있습니다. PHP 나 Javascript와 같은 프로그래밍 언어의 가장 큰 장점입니다. 원래 코드를 항상 볼 수 있습니다.) – func0der

1

일반 HTML을 입력하지 않으려면 어떻게해야합니까? 자동 생성 된 for 속성이 필요하지 않은 경우 FormHelper를 호출 할 필요가 없습니다.

echo '<label>Account Suspended:</label>'; 
$this->Form->input('account_suspended', array(
    'type' => 'checkbox', 
    'label' => 'Prevent the user from logging in' 
)); 

또는

<label>Account Suspended:</label> 
<?php 
$this->Form->input('account_suspended', array(
    'type' => 'checkbox', 
    'label' => 'Prevent the user from logging in' 
)); 

완벽하게 유효한 것은

+0

나도 알아, 난 그냥 당신이 FormHelper 함께 할 수있는 방법을 궁금 오전)

인사말 func0der, 당신은 지금이 필요하지 않은 경우, 당신은 아마 다른 프로젝트에 약간의 시간. 'for' 속성을 제공하는 것이 이상하다. 옵션은 도우미의 기본 옵션 배열과 병합되지 않는다. – BadHorsie

+0

나는 그것을 할 방법이 없다는 것을 받아 들일 것이다. – BadHorsie