2011-07-30 2 views
1

제목은 내 딜레마를 평신도의 용어로 설명하는 방법을 찾기 위해 약간 이상하게 보입니다.add.cpt의 드롭 다운 메뉴에서 view.ctp로 일치하는 데이터

내가 얻으려고하는 것은 내가 수집 할 수있는 것, 매우 간단하지만 ... 나는 그것에 손가락을 대고있는 것 같지 않습니다. add.ctp에서

class CountryListHelper extends FormHelper { 

    var $helpers = array('Form'); 

    function select($fieldname) { 
    $list = $this->Form->input($fieldname , array(
     'type' => 'select', 'label' => 'Country of Residence', 'options' => array(
     '' => 'Please select a country', 
     'AF' => 'Afganistan', 
     'AL' => 'Albania', 
     'DZ' => 'Algeria', 
     ................. 
     ), 
     'error' => 'Please select a country')); 
     return $this->output($list); 
    } 
} 

:

<?php echo $this->CountryList->select('country');?> 

아주 간단한 아래 예 -

나는 사용자가 도우미에있는 거주 국가를 선택할 수있는 선택 메뉴 드롭 다운을 물건 - 저장시 그것은 국가 필드에 약어를 씁니다.

내 문제는 .. view.ctp에 데이터를 가져올 때 전체 목록을 view.ctp에 작성하지 않고도 데이터베이스에 저장된 약어로 표시된 전체 국가 이름을 표시하려면 어떻게해야합니까? 거기에 국가 이름에 머리 글자를 일치 ...

<dt<?php if ($i % 2 == 0) echo $class;?>><?php __('Country of Residence'); ?></dt> 
     <dd<?php if ($i++ % 2 == 0) echo $class;?>> 
      <?php echo $user['User']['country']; ?> 
      &nbsp; 
     </dd> 

모든 도움을 주시면 대단히 감사하겠습니다!

답변

1

국가의 전체 이름을 반환하는 도우미에 새 함수를 추가하십시오.

class CountryListHelper extends FormHelper { 

    var $helpers = array('Form'); 
    var $countryList = array(
     'AF' => 'Afganistan', 
     'AL' => 'Albania', 
     'DZ' => 'Algeria', 
     ................. 
    ); 

    function select($fieldname) { 
     $list = $this->Form->input($fieldname , array(
     'type' => 'select', 'label' => 'Country of Residence', 
     'options' => $this->countryList, 
     'empty' => 'Please select a country', 
     'error' => 'Please select a country')); 
     return $this->output($list); 
    } 

    function fullName($abbr) { 
     return $this->countryList[ $abbr ]; 
     // + error checking 
    } 
} 
+0

이 새로운 기능 fullname에 대해 자세히 설명해 줄 수 있습니까? 나는 데이터 비교를하는 방법을 따르고 있지 않다. – Plastika

+0

그것은 배열로부터 국가 이름을 선택한다는 것이다. '$ x = array (1 => 'foo', 2 => 'bar') 할 때와 같습니다. $ y = $ x [1];'하지만 명명 된 키가 있습니다. 그래서'$ this-> CountryList-> fullName ('AF');으로 호출하면'Afganistan '을 반환합니다. – JJJ

+0

도움 주셔서 감사합니다. Tiz는 매력처럼 작동 ;-) – Plastika

관련 문제