Yii1-当使用php表单时,我应该把表单处理器文件放在哪里


Yii 1 - Where do I put the form processor file when using a php form

我正在用一个普通的php表单替换Yii 1 frameowrk中的Yii表单。

我遇到的问题是,当Yii把它放在表单操作中时,我不知道它在哪里寻找表单处理器文件。

现在,我有一个php文件来处理视图所在文件夹中的表单。我应该把表单处理器php文件放在哪里,以便Yii知道在哪里查找它?

<form action="contact.php" method="post">
    <p><b>Your Name*</b> <input type="text" name="yourname" /><br />
    <b>Subject*</b> <input type="text" name="subject" /><br />
    <b>E-mail*</b> <input type="text" name="email" /><br />
    <b>Body*</b><textarea id="message" name="message"></textarea></p>
    <p><input type="submit" value="Submit"></p>
</form>

您必须使用Yii路由系统,因为默认情况下Yii应用程序只有一个入口点-index.php,并且您不能直接调用文件。

<form action="some/doSomething" method="post" >
    <p><b>Your Name*</b> <input type="text" name="yourname" /><br />
    <b>Subject*</b> <input type="text" name="subject" /><br />
    <b>E-mail*</b> <input type="text" name="email" /><br />
    <b>Body*</b><textarea id="message" name="message"></textarea></p>
    <p><input type="submit" value="Submit"></p>
</form>

然后在你的控制器中:

class SomeController extends CController
{
    public function actionDoSomething()
    {
        'Yii::import('path.to.your.contact.php');
        $yourname = 'Yii::app()->request->getPost('yourname');
        $subject = 'Yii::app()->request->getPost('subject');
        $email = 'Yii::app()->request->getPost('email');
        $message = 'Yii::app()->request->getPost('message');
        // run you methods from contact.php
    }
}