Yii 1 - 在使用php表单时,我在哪里放置表单处理器文件

时间:2016-04-09 18:40:38

标签: php forms yii

我正在使用常规的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>

1 个答案:

答案 0 :(得分:0)

你必须使用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
    }
}