将数组转换为可用的字符串 - cakePHP

时间:2013-06-21 15:06:36

标签: php cakephp formhelper

我正在研究一个简单的cakePHP表单。我有一个变量$ user_name,它是从我的SQL表中填充的。

我已经肯定了

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

正确填充了$ user_name。我正在尝试使用我填充的变量来自动填充以下表单字段

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

但是,该字段仍为空白。有什么建议吗?

$ 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打印输出($ user_name);对于$ id = 1是

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

         )

1 个答案:

答案 0 :(得分:0)

这是一个非常基本的问题。

表单助手的value选项需要是一个字符串,输入不知道如何对数组这样做。

您的阵列具有此结构

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

所以你想要的字符串值是$user_name['CustomerInfo']['usr_name']。表单助手无法知道您想要作为值放置的字符串是否在该数组的那一部分。

在执行索引定义之前,不知道为什么尝试执行array_pop。在php中访问数组内部的值非常简单,所以首先尝试使用简单的方法,如果它更复杂的话,可以使用array_ php函数。

为了将来参考,如果您有一个数组或一个变量,并且想要在其中使用一个值,请执行debug或print_r以了解如何访问它。如果这是一个选项可以采用什么类型的数据的问题,cake docs是一个非常好的参考。