[英]Passing value from controller to view
我的模型中有一个查询使用联接,并以数组形式返回查询结果
result_array();
然后,我将该结果返回给我的控制器,我在其中调用了模型。
$data = $this->Model->show();
foreach($data as $val)
{
$arr[$val['recipename']] = $val['componentname'];
}
if($data != null)
{
$this->load->view('Admin\success',$arr);
}
我原本没有$ arr的价值。 我只是将其添加到此处以使数组更清晰。 无论如何,不管有没有。
var_dump($data)
和var_dump($arr)
,即使我$recipename
或$componentname
$recipename
$componentname
null。
返回null。 说他们是不确定的。
我不知道出了什么问题。
我读了另一个问题。 这就是为什么我制作了$ arr以便可以将其制成单个数组的原因,因此当它传输时,它将被提取并尝试回显它们,但无济于事。
编辑:
查询工作正常,它返回值。
$sample = $this->db->select('recipe.recipename,component.componentname')->from('recipe')
->join('recipecomponent','recipe.recipeid = recipecomponent.recipeid')
->join('component','component.componentid = recipecomponent.componentid')
->group_by('recipe.recipeid')
->get()
->result_array();
return $sample;
$data
很可能为空,并且您正在迭代一个空数组。
下面是一种简单的调试方法:
echo '<div style="padding:15px; background-color:white;"><pre>'.print_r($data, true).'</pre></div>';
要么
echo '<div style="padding:15px; background-color:white;"><pre>'.print_r($this->Model->show(), true).'</pre></div>';
您还__construct
像这样在__construct
打开错误报告:
error_reporting(E_ALL);
如果print_r()
向您显示一个空数组,则您的模型未返回任何数据,并且问题的答案可能是您需要修复查询。
将数据数组传递到视图后, 数组键将变为变量 。 例如,在您的foreach
循环之后,您的$arr
变量就是这样的数组
array [
'cheese' => 'brie'
'cookie' => 'chocolate chips'
]
然后,您可以通过在视图中执行以下操作来访问$arr['cheese']
echo $cheese;
尝试在视图中访问$data
或$arr
无效,因为它们不在范围内
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.