我正在尝试使用这种方法将两个数组从控制器传递到视图:
我的基础数据查询已提取此数据,如下所示: $ catalogData:Title(服装);季节(冬季); $ ProductData:Type(Shirts);尺寸(XL);价格(10美元);
控制器
$this->load->view('users/TheView', $catalogData, $productData);
查看
<?php
echo $Catalog;
echo $Season;
echo $Type;
echo $Size;
echo $Price;
?>
我的错误讯息是
A PHP Error was encountered
Severity: Notice
Message: Undefined index: Catalog
Filename: users/controller.php
我似乎无法找到将两个数组传递给视图的任何示例,这让我认为这是不可能的?
编辑:我正在使用CodeIgniter
答案 0 :(得分:2)
在不了解有关MVC框架的任何内容的情况下,我只能假设它在视图名称后面需要一个数组参数并使用extract
,在这种情况下我会执行以下操作
$this->load->view('users/TheView', array(
'catalog' => $catalogData,
'product' => $productData));
并在您看来......
<?php
echo $catalog['Title'], $catalog['Season'], $product['Type'], etc
此外,您的错误消息似乎表明您应该使用$Title
而不是$Catalog
。 Title
是数据示例中显示的属性名称。
答案 1 :(得分:2)
首先,如果你想传递多个数组来查看,那么你应该在控制器中做这样的事情
$data=array();
$data['catalogData']=$this->model_name->function_name(); // query for catalog
$data['ProductData']=$this->model_name->function_name(); // query for product
$this->load->view('view_name',$data);
在视图中
if(isset($catalogData) && is_array($catalogData) && count($catalogData)>0)
{
echo $catalogData['Title'];
}
这是程序。如果您遇到任何问题,请告诉我。
答案 2 :(得分:0)
我能想到几件不同的事情,
首先:您正在尝试回显$ Catalog,但我没有看到您将具有该名称的变量传递给您的视图。这导致了第二部分。
第二:你需要回显你想要打印的对象,而不是数组。所以他们应该是这样的:
<?php echo $catalogData['Title']; ?>
最后,老实说,如果没有框架,我就永远不会进行php编程,你不要提及是否使用了一个,但通常是在你将一组变量传递到视图中的那些。如下所示:
$this->load->view('users/TheView', array('catalogData'=>$catalogData, 'productData'=>$productData);
答案 3 :(得分:0)
您可以传递两个这样的数组
$data['catalogData'] = $catalogData;
$data['productData'] = $productData;
$this->load->view('users/TheView', $data);