我试图创建一个双重选择加入'订阅序列。我有单个表单,将个人电子邮件,添加到数据库,然后通过电子邮件发送确认链接([base url]/controller/confirmEmail/[email hash]
)。一旦用户点击链接,它应该将它们带到与表单相同的页面,但不是表单,它应该加载一个小的成功页面。
所有这些都是通过一个控制器和一个型号完成的。我不确定我是否应该将工作拆分为2个控制器。但是这里是链接中调用的特定方法的代码:
public function confirmEmail($hash) {
$this->load->model('email_model');
$email = $this->email_model->confirm_email($hash);
if($email){
$data['email'] = $email;
$data['include'] = "confirmSuccess.php";
} else {
$data['include'] = "confirmFailure.php";
}
$this->load->view('working_view', $data);
}
$this->email_model->confirm_email($hash)
调用模型尝试更新数据库中电子邮件的状态,如果成功则返回电子邮件,否则返回false。
$data['include']
用于针对各种状态更改而更改的小部分(例如添加到数据库,显示表单,成功确认)。在index
函数中,是在显示表单但在那里设置$data['include']
时。但是当在电子邮件中单击链接时,将显示表单而不是上面方法中设置的2个php页面。
这让我现在摸不着头脑。如果方法自己加载视图,则不确定为什么要加载索引。任何帮助,将不胜感激。
答案 0 :(得分:0)
所以我想通了。
发生的事情是我的路由搞砸了,我把它设置为接受参数但是错误的类型(仅文本但是has是字母数字,因此我必须将其调整为/(:any)
,我猜允许我的参数被传递并且它可以正常工作