关于控制器的函数写法
大家好:我有个疑问,如果一个控制器的类的两个函数都和某个操作相关,比如,新闻发布(news控制器类)的add方法,有两种情况,一种是用户点击添加时,add()是加载添加新闻的页面,而当用户填完数据点击添加时,实际工作的是另外一个函数(比如,do_add),还是用原来的add()再加一个参数,表示这次是一个添加操作? 哪个比较好一点~?谢谢 关注:)~~帖子长度要八个字 根本不同的两个方法,一个是填表单,一个是处理提交的表单,概念混淆 个人想法:
同一个控制函数身兼二职,既显示页面又处理表单。相对比较紧凑,比如CI手册里注册验证里的例子,显示视图和处理数据都是同一个方法。
if ($this->form_validation->run() == FALSE)
{
//如果不是提交就显示数据
$this->load->view('myform');
}
else
{
//是提交,处理表单
$this->user_model->reg();
}
如果像你的发新闻,也可以这样。但是,这种做法,一般只适合简单的表单处理。原因两方面
1、显示数据和处理表单需要的参数可能不一样,这样,控件器函数的参数不好设置。
2、表单复杂的话,函数代码比较乱。
所以复杂的表单可以新建一个方法,专门来处理表单的数据,处理结束后redirect到显示数据的方法。不过使用这种方式,要防止用户直接在浏览器输入这个方法来访问。 谢谢楼上,:)
页:
[1]