PHP Codeigniter:$ data变量可在print_r中查看,但直接访问会产生'undefined index'错误

See last code block for controller code. When I use the line below in my view, it returns all the variables in the property array:

<?php echo print_r($property);?>

However, when I want to access just one item from the $property array, I get an undefined index error:

<?php echo print_r($property['county']);?> 

Here is a var_dump ($property)

array (size=1)
  0 => 
    array (size=6)
      'property_id' => string '1' (length=1)
      'address1' => string '26 College Green Walk' (length=21)
      'town_city' => string 'Derby' (length=5)
      'county' => string 'Derbyshire' (length=10)
      'property_description' => string '<p>
    This is a property description for a rental property in Mickleover. Very nice it is too!</p>
' (length=100)
      'property_images_filepath' => string 'ee736-6.jpg' (length=11) 

Can anyone point where to look because I'm stumped!?

The controller:

public function __construct()
{
    parent::__construct();
    $this->load->model('agency_model');


    $this->output->enable_profiler(TRUE);
}



/**
 * Shows the details of the property specified by the $id parameter
 * @param string $id the id of the property to be retrieved from the DB
 */
public function show () {


$id = $this->input->get('property_id');


    if (!isset($id)) 
    {

        // Whoops, we don't have a page for that!
        show_404();
    }


    else

    {

        $data['property'] = $this->agency_model->get_property_details($id);
        $data['title'] = 'Current Properties';

        $this->load->view('templates/header', $data);
        $this->load->view('agency/property_details_view', $data);
        $this->load->view('templates/footer');
    }

}

}

Thanks Gareth

douji6461
douji6461 事实上,如果我使用$query->result()或$query->row()并从视图中的引用中删除数组索引,我再次得到未定义的索引错误...所以仍然没有更明智的!至少我有办法让这项工作成功
6 年多之前 回复
dongzhiyan5693
dongzhiyan5693 $query->result_array()实际上,我刚刚从另一个函数复制,我在视图中使用for每个循环访问结果。所以,我认为这是问题,阅读CI文档result_array()'通常用于每个循环'。虽然我不确定我理解为什么在通过foreachvsnon-loop访问访问结果时我需要使用数组索引?谢谢你输入顺便说一句
6 年多之前 回复
duanmei2805
duanmei2805 您是否返回$query->result()或$query->row()?
6 年多之前 回复
doujiao9426
doujiao9426 啊哈!现在我们正在谈论!这给了我期待的东西-谢谢你。知道为什么会这样(只是为了我的理智)?当我循环时(因为我正在另一个页面上,它返回属性列表)我可以使用$property['county']访问变量-我不明白为什么这是不同的。无论如何,我可以解决这个问题,你已经解决了我的问题,再次感谢。
6 年多之前 回复
dongquweng5152
dongquweng5152 print_r($property[0]['county'])会产生什么?
6 年多之前 回复
duanbiao4025
duanbiao4025 更新为包含var_dump-您可以看到我有可供视图使用的变量,这样,当我尝试单独访问它时无法理解错误
6 年多之前 回复
doupang9080
doupang9080 你可以发布$property属性的var_dump吗?
6 年多之前 回复
drkwpgrdb092239314
drkwpgrdb092239314 很好的修复,做了改变...虽然仍然没有得到我的变量:-(
6 年多之前 回复
douping1993
douping1993 不确定它是否重要,但你没有关闭阵列周围的支架。我知道这不是你面临的问题,但我只需要指出<?phpechoprint_r($property['county']);?><-修复
6 年多之前 回复

4个回答

Try this one. if your array is like this in controller

$data['info'] = array(
    'col_1' => "first_1",
     'col_2'=>  "first_2"
);
$this->load->view('folder/page',$data);

then in view you may access it like this.

echo $info['col_1'];
echo $info['col_1'];

Or if it is multiple record's array you will use

foreach($info as $row)
{
 //your code/statements.
}

I think that's syntax error, did you mean:

<?php echo print_r($property['country');?>  

and not:

<?php echo print_r($property['county');?>  
dongzhi6146
dongzhi6146 不,这是正确的 - 虽然好景点! 这是一个英国人的事情 - 一个县就像一个省或某种状态(我猜)。 我已经尝试过与数组中的其他变量一样的'town_city' - 仍然是同样的错误
6 年多之前 回复



我怀疑这会给你你想要的东西</ p>

  foreach($ property as as  $ properties)
print_r($ properties ['county']);
endforeach;
</ code> </ pre>
</ div>

展开原文

原文

I suspect this will give you what you want

 foreach ($property as $properties)
     print_r($properties['county']);
 endforeach;

duandie5707
duandie5707 我在这个页面上只有一个属性(它是一个详细信息视图)所以不需要循环。 根据$ _GET中传递的property_id,从DB中选择单个属性,谢谢:-)
6 年多之前 回复

It's easy to miss, but the following will work.

<?php echo print_r( $property[ 0 ]['county'] ); ?> 

When you did a var_dump, I noticed that there was an array index.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐