controller始终加载索引,而不是url中的方法

时间:2014-08-25 15:32:08

标签: php codeigniter web

我试图创建一个双重选择加入'订阅序列。我有单个表单,将个人电子邮件,添加到数据库,然后通过电子邮件发送确认链接([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页面。

这让我现在摸不着头脑。如果方法自己加载视图,则不确定为什么要加载索引。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

所以我想通了。

发生的事情是我的路由搞砸了,我把它设置为接受参数但是错误的类型(仅文本但是has是字母数字,因此我必须将其调整为/(:any),我猜允许我的参数被传递并且它可以正常工作