[英]How to use controller method from view in Codeigniter
问题:我似乎无法从视图调用控制器方法。 为什么:因为我想在方法中传递参数并循环数据
鉴于:
foreach($data as $key => $val){
foreach($methodData($val['dataID']) as $mKey => $mVal){
echo $mVal['name'];
}
}
在MVC模式中不建议这样做。 您只应在视图中显示数据(从控制器传递的数据)。
考虑一下,因此在控制器中根据需要设置数据,然后将正确的模型传递给视图。
可以说有一个名为“丛林”的模型。 在模型中,我们使用搜索词搜索大象。 如果没有大象回来,我们将加载搜索表格并将搜索字词传递回去。
在您的控制器中
// check first if no results came back from the model
if( ! $data['elephants'] = $this->jungle->getElephants($searchterm) ){
$data['searchterm'] = $searchterm ;
$this->load->view( 'searchform_elephants', $data ); }
// we have results, $elephants data structure is assigned to $data
// and passed to the view so it can be accessed on the view page
else { $this->load->view( 'show_elephants', $data ); }
如果一些大象回来了,则将该$ elephant对象(或数组)分配给$ data,然后将其传递给视图。
因此,在您看来,您可以根据数据结构的类型逐一查看结果。
foreach($elephants as $index => $elephant) :
echo $elephant->firstname . ' ' . $elephant->lastname ;
最后-如果您知道从数据库等中检索的内容是单个记录,则可以将查询结果分配给row()。 然后,在视图中,您无需进行foreach等操作。例如,如果通过$ id获得唯一的雪花
// controller
$data['snowflake'] = $this->blizzard->getFlakeBy($id) ;
// view
echo $snowflake->firstname ;
该页面的设计者: https ://ellislab.com/codeigniter/user-guide/database/results.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.