控制器总是加载索引,而不是url中的方法


controller always loads index, never the method in the url

我正在尝试创建一个'双重选择'订阅序列。我有单一的形式采取个人电子邮件,将其添加到数据库,然后电子邮件与确认链接([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页面。

这已经让我挠头好一阵子了。如果方法自己加载视图,不确定为什么要加载索引。任何帮助都会很感激。

我明白了。

发生的事情是,我的路由搞砸了,我把它设置为接受参数,但错误的类型(只有文本,但有字母数字,所以我不得不调整它为/(:any),我猜允许我的参数传递,它的工作