-3

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

我已经确认

    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
         )

         )
4

1 回答 1

0

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

表单助手的值选项需要是一个字符串,输入不知道如何处理像数组这样的东西。

你的数组有这个结构

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

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

不知道你为什么array_pop在做索引定义之前尝试做一个。在 php 中访问数组中的值非常简单,因此请先尝试使用简单的方法,array_如果更复杂,请使用 php 函数。

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

于 2013-06-21T16:00:00.260 回答