我是Yii的新手,并使用纯HTML代码创建了一个表单
这里TesterUserReg是不同的控制器..
<form id="signup" action="/xyzApp/index.php?r=testerUserReg/create" method="post" accept-charser="UTF-8">
<fieldset>
<div id='solidLine'>
<p>
<label for="name">Name</label><br>
<input id="name" name="username" type="text" class="validate[required,custom[onlyLetter],length[0,100]] text" value="" placeholder="your full name"/>
</p>
<p>
<label for="email">Email</label><br>
<input id="email" name="email" type="text" class="validate[required,custom[email]] text" value="" placeholder="hello@testunity.com"/>
</p>
................. ...............
注册
并使用jQuery验证引擎插件验证表单..
我的控制器看起来像
public function actionCreate()
{
$model=new TesterUserReg;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['TesterUserReg']))
{
$model->attributes=$_POST['TesterUserReg'];
$request = Yii::app()->getRequest();
//$model->ut = $request->getPost('username');
$model->ut_pwd = $request->getPost('password');
$model->ut_email_id = $request->getPost('email');
$model->ut_user_id = md5(uniqid(rand(), true));
$model->ut_reg_date = new DateTime();
if($model->save()){}
//$this->redirect(array('view','id'=>$model->ut_user_id));
}
$this->render('create',array(
'model'=>$model,
));
}
当我提交表单时,它会呈现给Yii默认登录页面。它不叫这个控制器。 请帮我解决这个问题。
感谢。
答案 0 :(得分:1)
关于您的表单是否使用是否使用CHtml或CActiveForm。这是您的控制器问题,请检查您的控制器内的过滤器和accessRules。
如果您不确定该怎么做,可以暂时将其删除,并测试您是否仍然遇到此问题。
了解详情?请查看以下链接。有些人确实建议读者在他们弄脏之前通读指南。 Yii团队确实提供了很好的文档。一旦您遇到编码问题,您可以查看指南或课堂参考,然后您就可以找到所需内容。 http://www.yiiframework.com/doc/guide/1.1/en/basics.controller#filter
快乐编码^ _ ^
答案 1 :(得分:1)
您的问题出现在您的表单中,因为在您的控制器中,您正试图获取
if(isset($_POST['TesterUserReg']))
哪种形式永远不会来自您的表单,然后如何在您的控制器中处理您的表单。
那么你要做的就是改变我提到的所有表单输入的名称
<form id="signup" action="/xyzApp/index.php?r=testerUserReg/create" method="post" accept-charser="UTF-8">
<fieldset>
<div id='solidLine'>
<p>
<label for="name">Name</label><br>
<input id="name" name="TesterUserReg[username]" type="text" class="validate[required,custom[onlyLetter],length[0,100]] text" value="" placeholder="your full name"/>
</p>
<p>
<label for="email">Email</label><br>
<input id="email" name="TesterUserReg[email]" type="text" class="validate[required,custom[email]] text" value="" placeholder="hello@testunity.com"/>
</p>
通过这种方式更改表单输入名称您的控制器条件
if(isset($_POST['TesterUserReg']))
将会满意,您的进一步过程将会继续。
快乐编码:)