function rules()
{
return array(
array('username','required','message'=>'用户名是必须的'),
array('username','unique','message'=>'用户名重复'),
array('password2','compare','compareAttribute'=>'password','message'=>'两次输入的密码不一样'), //如果数据库没有这个字段,可以在 类中加一个 public $类名
array('password','required','message'=>'密码是必须的'),
array('user_email','email','allowEmpty'=>false,'message'=>'邮箱格式不正确'),
array('user_qq','match','pattern'=>'/[1-9]\d{4,11}$/','message'=>'QQ号码格式不正确'),
array('user_tel','match','pattern'=>'/13\d{9}$/','message'=>'手机号码格式不正确'),
array('user_xueli','in','range'=>array(2,3,4,5),'message'=>'学历必须选择'),
array('user_hobby','checkHobby'), //自定义验证
array('user_introduce','safe')
);
}
function checkHobby()
{
if(strlen($this->user_hobby) < 3)
$this->addError('user_hobby','爱好必须选择两项或以上');
}
public function actionRegister()
{
$user_model = new user(); //需要 insert 所以要new
if(isset($_POST['User']))
{
// foreach($_POST['User'] as $k => $v)
// {
// if(is_array($v))
// {
// $temp = '';
// foreach ($v as $value)
// {
// $temp.=$value.'|';
// }
// $temp = substr($temp,0,-1);
// $user_model->$k = $temp;
// continue;
// }
// $user_model->$k = $v;
// }
if(is_array($_POST['User']['user_hobby']))
{
$_POST['User']['user_hobby'] = implode(',',$_POST['User']['user_hobby']);
}
$user_model->attributes = $_POST['User'];
// var_dump($user_model->attributes);
// exit;
$user_model->save();
}
YII 内置的 $user_model->attribute = $_POST['User]; 可以自动的验证并把数据加入 model中 然后 save就行了
注意: 如果在 rules 中没有 添加 规则 的字段, attributes 是不收的