-2

我正在尝试使用这种方法将两个数组从控制器传递到视图:

我的基础数据查询已将这些数据提取如下: $catalogData: Title (Clothing); 季节(冬季);$ProductData:类型(衬衫);尺寸(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

4

4 回答 4

2

在不了解相关 MVC 框架的情况下,我只能假设它在视图名称和 uses 之后需要一个数组参数extract,在这种情况下,我将执行以下操作

$this->load->view('users/TheView', array(
    'catalog' => $catalogData,
    'product' => $productData));

在你看来……

<?php
echo $catalog['Title'], $catalog['Season'], $product['Type'], etc

此外,您的错误消息似乎表明您应该使用$Title而不是$Catalog. Title是您的数据示例中显示的属性名称。

于 2013-09-24T05:03:48.350 回答
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'];
}

这些是程序。如果您遇到任何问题,请告诉我。

于 2013-09-24T06:54:32.490 回答
0

你可以像这样传递两个数组

$data['catalogData']    =   $catalogData;
$data['productData']    =   $productData;

$this->load->view('users/TheView', $data);
于 2013-09-24T07:22:36.287 回答
0

我能想到的一些不同的事情,

首先:您正在尝试回显 $Catalog,但我没有看到您将具有该名称的变量传递给您的视图的任何地方。这就引出了第二部分。

第二:您需要回显要打印的对象,而不是数组。所以它们应该是这样的:

<?php echo $catalogData['Title']; ?>

最后,老实说,我从来没有在没有框架的情况下进行 php 编程,你也没有提到你是否正在使用框架,但通常在那些你将一组变量传递到你的视图中。所以像:

$this->load->view('users/TheView', array('catalogData'=>$catalogData, 'productData'=>$productData);
于 2013-09-24T05:06:07.597 回答