2013-06-21 3 views
-3

저는 간단한 cakePHP 양식을 만들고 있습니다. 내 SQL 테이블에서 채워진 변수 $ user_name이 있습니다.배열을 사용 가능한 문자열로 변환합니다 - cakePHP

는 I은 $ _ 이름이 제대로되어 있는지

echo '<pre>'; 
    print_r($user_name); 
    echo '</pre>'; 

로 단언했습니다. 채워진 변수를 채워서 다음 양식 필드를 자동 채우기 위해 사용하려고합니다.

echo $this->Form->input($modelNameField . '.name_of_customer', array('readonly'=> 'readonly','label'=> 'Customer Name', 'type'=> 'text', 'value'=> $user_name)); 

그러나 입력란은 비어 있습니다. 어떤 제안?

선언 $ _ 이름

  App::import('model','customerInfo');    
     $customerInfos = new customerInfo();   
     $user_name = array(); 
     $user_name = $customerInfos->get_name($id); 

-

get_name 방법

  public function get_name($id) 
    { 
    return $this->find('first', array('fields' =>array('usr_name'),'conditions'=>array("customerInfo.id"=>$id))); 
    } 

-

에서 print_r ($ _ 이름)에서 인쇄 출력; $ id = 1 인 경우

  Array 
     (
     [CustomerInfo] => Array 
     (
      [usr_name] => Ted Jones 
     ) 

     ) 
+0

해당 코드가보기에있는 것과 똑같은가요? 그렇다면 레이블에서'''를 이스케이프 처리해야합니다. 또한 그 추신에 대해 무슨 뜻입니까? 사용자 이름이 배열입니까? 값에 문자열로 전달해야합니다. – Nunser

+0

죄송합니다. 예, 고객 이름이되어야합니다. – Vedun23

+0

문자열을 값으로 전달하면 문제가 발생하는 것입니다. implode 및 array_pop을 시도했지만 아직 주사위가 없습니다. – Vedun23

답변

0

이것은 매우 기본적인 질문입니다.

양식 도우미의 값 옵션은 문자열이어야하며 입력은 배열과 같은 작업을 수행 할 수 없습니다.

귀하의 배열은

$user_name = array (
       'CustomerInfo' => array(
        'usr_name' => 'Ted Jones' 
       ) 
      ); 

그래서 당신이 원하는 문자열 값 $user_name['CustomerInfo']['usr_name']에이 구조를 가지고있다. 양식 도우미는 값으로 넣으려는 문자열이 해당 배열의 해당 부분에 있음을 알 수있는 방법이 없습니다.

색인 정의를 수행하기 전에 array_pop을 시도한 이유를 모르겠습니다. PHP에서 배열 내부의 값에 액세스하는 것은 매우 간단하므로 먼저 간단한 접근 방식을 시도하고 더 복잡한 경우 array_ PHP 함수로 이동하십시오.

나중에 참조 할 배열이나 변수가 있고 그 안에 값을 사용하려는 경우 디버그 또는 print_r을 사용하여 액세스 방법을 알아보십시오. 옵션으로 사용할 수있는 데이터 유형이 무엇이든지간에 cake docs은 매우 훌륭한 참조입니다.

관련 문제