在cakephp中,我从mysql中检索数据并将它们分配给一个数组,但是我无法在视图中重用它的每个元素。
在控制器中,我调用模型来查询数据库中的数据,该数据具有以下格式
Array ([0]=>Array([user]=>Array([something]=>somevalue [somethingelse]=>someotherValue))
[1]=>Array([user]=>Array([something]=>somevalue [somethingelse]=>someotherValue))
.......)
我按照以下方式初始化我准备传递给视图的数组,$ result是从数据库中获取的数组。
$i=0;
foreach($result as $row)
{
$exportDt[$i]['something']=$row['user'][something];
$exportDt[$i]['somethingelse']=$row['user'][somethingelse];
}
this->set($exportDt);
如何在视图中重用此exportDt数组?我想只允许一个暗淡的数组设置。
答案 0 :(得分:1)
看起来您只需要使用正确的语法来设置变量(即将变量从控制器传递到视图):
//controller
$this->set('exportDt', $exportDt);
//view
print_r($exportDt);
$this->set()
的第一个参数是您希望从视图中访问的变量的名称。第二个是要放入该变量的数据。
因此,例如,您甚至可以使用其他名称:
//controller
$this->set('myVar', $exportDt);
//view
print_r($myVar);
另一种常见做法是使用PHP的compact
。它通过字符串的名称查找变量,并创建一个名为=> value
... compact()查找具有该名称的变量 当前的符号表并将其添加到输出数组中 变量名成为键,变量的内容变为 该键的值。简而言之,它与extract()完全相反。
示例:
//controller
$this->set(compact('exportDt');
//view
$print_r($exportDt);
更常见的是,它与多个变量一起使用:
//controller
$var1 = 'whatever';
$myVar = 'something else';
$anotherVar = true;
$this->set(compact('var1', 'myVar', 'anotherVar'));
//view
echo $var1. ' ' . $anotherVar . ' ' . $myVar;
答案 1 :(得分:1)
控制器部分
$this->set('exportDt', $exportDt);
查看部分
您可以直接访问$ exportDt作为.ctp文件中的数组
由于