在 Codeigniter 中处理发布数据的好方法是啥?
Posted
技术标签:
【中文标题】在 Codeigniter 中处理发布数据的好方法是啥?【英文标题】:What's a good way to handle post data in Codeigniter?在 Codeigniter 中处理发布数据的好方法是什么? 【发布时间】:2011-03-20 04:42:23 【问题描述】:即你会推荐我使用这样的一种控制器方法吗:
function save()
if(!is_bool($this->input->post('')))
$post_data = $this->input->post('');
$this->mymodel->save($post_data);
$this->load->view('myview');
或者你会推荐使用两种方法来编写它吗?
function save()
if(!is_bool($this->input->post('')))
$post_data = $this->input->post('');
$this->mymodel->save($post_data);
redirect('controller/method2')
重定向是这里的关键区别。例如,它禁止重新提交更新。
你是怎么做到的?还有其他更好的方法吗?
【问题讨论】:
虽然概念链接已经发布在答案中,但为了节省一些时间,请查看Post/Redirect/Get。 【参考方案1】:您应该始终在成功的表单帖子上重定向。
【讨论】:
+1000 互联网积分给你 Aren。每个人都应该知道一个简单的规则。【参考方案2】:您应该始终在成功的表单帖子上重定向。
当然。对于任何想知道为什么会出现这种情况的人,这里有几个原因:
避免“重复提交”。当你无意中点击刷新或点击返回按钮并wham时,是否有过这样的情况? 对书签友好。如果您的用户为页面添加了书签,大概您希望他们返回创建页面的位置,而不是空白表单(重定向使他们为确认/登录页面添加书签。进一步阅读: http://en.wikipedia.org/wiki/Post/Redirect/Get
【讨论】:
【参考方案3】:正如 Aren B 所说,重定向是一个好主意,但我要在您的代码中更改的是,应该使用表单验证功能来验证发布数据。它不仅更可重用,而且代码会变得更短。
如果您想处理 AJAX 请求,则需要返回除通过或重定向之外的其他内容。
【讨论】:
以上是关于在 Codeigniter 中处理发布数据的好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章