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