即使在多次访问文档之后,我对控制器使用的理解仍然存在差距。我有以下内容:
class Membership extends CI_Controller
{
/*Load the login view first assuming user is member*/
public function index()
{
$this->load->view('login');
}
/*if not member, load register view*/
public function register()
{
$this->load->view('register');
}
/*view to recover user credentials*/
public function recover()
{
$this->load->view('recover');
}
public function enroll_user()
{
/*Retrieve post parameters*/
$fullname = $this->input->post('fullname');
$email = $this->input->post('email');
$mobile = $this->input->post('mobile');
$home = $this->input->post('home');
$username = $this->input->post('username');
$password = $this->input->post('password');
$confirmPassword = $this->input->post('cpassword');
}
}
当用户点击主页上的Register now链接时,Register()函数应该加载视图。但是他填好表格提交后,我应该提交给哪个功能呢?这是否意味着我必须为每个功能创建两个函数,一个用于加载视图(register.php),另一个用于处理该函数的操作(enroll_user)? 你可以一次完成
public function register()
{
$post = $this->input->post();
if($post){
// do other stuff here
// you can load view here too if validation fails
}else{
$this->load->view('register');
}
}
在你的表单中使用这个
echo form_open(current_url());
在register.php中,将表单的操作提交到membership/enrollment _user,这样当用户提交注册表单时,操作将提交到enrollment _user函数,它将负责注册等。
您需要两个函数,一个用于显示注册表单,另一个用于处理提交的数据。你可以用一个控制器来做,但最好是用两个控制器来做,因为这样你以后会更容易发现哪个函数在做什么。