【问题标题】:Converting an array into a usable string - cakePHP将数组转换为可用字符串 - cakePHP
【发布时间】:2013-06-21 15:06:36
【问题描述】:

我正在制作一个简单的 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
         )

         )

【问题讨论】:

  • 该代码是否与您认为的完全相同?如果是这样,您需要转义标签中的'。还有,那个PS是什么意思?用户名是一个数组?您应该将其作为字符串传递给值。
  • 糟糕,应该是客户名称。
  • 我想将它作为字符串传递给 value 是我遇到问题的地方。我试过 implode 和 array_pop,但没有骰子。
  • 那么,首先尝试为输入设置一个类似“Smith”(硬编码)的值,看看该字段是否仍为空白。如果不是,那么您需要更新问题,因为这不是表单助手的问题,而不是“如何将此数组转换为我要使用的字符串”
  • 很公平。试了一下,让它工作了。更新问题。

标签: php cakephp formhelper


【解决方案1】:

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

form helper 的 value 选项需要是一个字符串,input 不知道如何处理类似数组的东西。

你的数组有这个结构

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 2011-06-18
    • 2011-06-14
    • 1970-01-01
    相关资源
    最近更新 更多