Yii中的表单:如果验证失败,如何将数据发回


Forms in Yii: how to send data back, if verification has failed

我得到了这个代码:

public function actionJoin() {
  $user = new RUser;
  if (isset($_POST['RUser']))
      $user->attributes = $_POST['RUser'];
  $this->render('join',
    array(
        'user' => $user
    )
  );
}

这还不允许用户注册。我想知道的是如何将数据发送回用户。我的意思是,如果用户表单没有通过验证,我必须发回一些数据,所以用户无需再次输入。

我可以这样做:

$user->mail = $_POST['RUser']['mail'];

但它看起来像是回到了普通的PHP,而没有在这里使用框架的强大功能。

添加发布RUser类,如果需要:

class RUser extends CFormModel
{
    public $mail;
    public $alias;
    public function safeAttributes()
    {
        return array(
            'mail', 'alias'
        );
    }
} 

您使用的Yii的哪个版本。在Yii 1.1中,没有安全属性。你使用以下

public function rules()
{
    return array(
        array('mail, alias', 'safe'),
    );
}