CodeIgniter的URI和表单操作

hug*_*rth 6 php forms codeigniter

让我们说我们在

somesite.com/mail
Run Code Online (Sandbox Code Playgroud)

这意味着我们正在使用名为'mail'的控制器.这个控制器有功能:

public function index(){ 
        $this->load->view('header');
        $this->load->view('mail/contact_form');
        $this->load->view('footer');

    }
Run Code Online (Sandbox Code Playgroud)

刚输入地址栏时会加载此功能

somesite.com/mail
Run Code Online (Sandbox Code Playgroud)

并按Enter键(无其他参数).让我们看一下contact_form视图的第一行:

<form role="form" method="post" action="sendmail">
Run Code Online (Sandbox Code Playgroud)

那是我的问题.当我在末尾用反斜杠键入地址时,如下所示:

mysite.com/mail/
Run Code Online (Sandbox Code Playgroud)

并使用我的联系方式,一切正常,我的邮件控制器加载函数sendmail和URL现在:

mysite.com/mail/sendmail/
Run Code Online (Sandbox Code Playgroud)

但是当我忘记反斜杠(mysite.com/mail)时,它会找到名为"sendmail"的控制器,但我不想要它.我的网址是:

mysite.com/sendmail
Run Code Online (Sandbox Code Playgroud)

但我当然没有任何名为sendmail的控制器.我的问题是 - 如何改变我的公式的行动或我该怎么做才能使这个工作得好?唯一的答案是记住反斜杠或什么?

M K*_*aid 10

举个简单的例子就是使用CI site_url()

site_url("controller/function") 它将照顾其他网址的东西

<form role="form" method="post" action="<?php echo site_url('mail/sendmail');?>">
Run Code Online (Sandbox Code Playgroud)

浏览url_helper