加载视图传递变量到控制器的函数 - CodeIgniter

时间:2011-11-13 20:50:42

标签: codeigniter view

我正在使用CodeIgniter并希望加载一个视图,例如:

$this->load->view('image/delete/' . $_POST['id'], $data);

$ _POST ['id']是我''image'控制器内“删除”功能的必需参数。我本以为这会工作正常,但我收到一个CI错误说明:

“无法加载请求的文件:image / delete / 113.php”

我不明白为什么CI会在此末尾添加“.php”,难怪它无法找到此文件。我做错了什么?

3 个答案:

答案 0 :(得分:1)

  

除非您使用,否则无需指定.php文件扩展名   除了.php之外的东西。

“图像”控制器中的代码:

public function delete($parameter=false)
{

some_delete_function($parameter);

//and load view

}

答案 1 :(得分:1)

除了伊万的答案之外,你要做的是违反MVC原则:分离关注点。

视图应该只显示数据,它们不应该获得删除资源等功能。

您需要使用URL helper class中的redirect()功能将浏览器重定向到"image/delete/".$image_id

,而不是加载视图

然后,正如Ivan建议的那样,您需要一个Image控制器,其delete($id)功能。此功能将删除您的图像,然后加载视图以指示资源已被删除。

答案 2 :(得分:0)

看起来您正在尝试使用视图加载URL / image / delete / 113。但它正在尝试从硬盘加载view~application / views / images / delete / 113。

我建议只删除你代码中的图像,如果它是复杂的,可以创建一个库,如果不是,可以创建一个帮助,并从控制器那里调用它。