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

Php 控制器总是加载索引,而不是url中的方法,php,codeigniter,web,Php,Codeigniter,Web,我正在尝试创建一个“双选择加入”订阅序列。我有一个单独的表单来接收个人电子邮件,将其添加到数据库中,然后通过确认链接[base url]/controller/confirmEmail/[email hash]发送电子邮件。一旦用户单击链接,它应该将他们带到与表单相同的页面,但是它应该加载一个小的成功页面,而不是表单 所有这些都是通过一个控制器和一个模型完成的。我不确定我是否应该把工作分成两个控制器。但下面是在链接中调用的特定方法的代码: public function confirmEmail

我正在尝试创建一个“双选择加入”订阅序列。我有一个单独的表单来接收个人电子邮件,将其添加到数据库中,然后通过确认链接[base url]/controller/confirmEmail/[email hash]发送电子邮件。一旦用户单击链接,它应该将他们带到与表单相同的页面,但是它应该加载一个小的成功页面,而不是表单

所有这些都是通过一个控制器和一个模型完成的。我不确定我是否应该把工作分成两个控制器。但下面是在链接中调用的特定方法的代码:

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\u model->confirm\u email$hash调用模型尝试更新数据库中电子邮件的状态,如果成功则返回电子邮件,否则返回false

$data['include']用于一个小部分,该部分会因各种状态更改而更改,例如添加到数据库、显示表单、成功确认。在索引函数中,是在显示表单但在其中设置$data['include']时。但是,当在电子邮件中单击链接时,将显示表单,而不是上面方法中设置的2个php页面

这让我抓狂了好一阵子。如果方法自己加载视图,则不确定加载索引的原因。任何帮助都将不胜感激

所以我想出来了

发生的事情是,我的路由被弄乱了,我把它设置为接受参数,但只接受错误类型的文本,但是has是字母数字的,所以我不得不将它调整为/:any,我想这允许传递我的参数,并且它可以工作