YII,Model里面取Form提交的值

艾派德迷你2 2014-03-13 10:32:20
我有一个登录页面,用的是LDAP...
Controller
public function actionLogin() {
$model = new LoginForm;

// if it is ajax validation request
if (isset($_POST['ajax']) && $_POST['ajax'] === 'LoginForm') {
echo CActiveForm::validate($model);
Yii::app()->end();
}

if (isset($_POST['LoginForm'])) {
$model->attributes = $_POST['LoginForm'];
var_dump($model->attributes); //Question One
if ($model->validate() && $model->login()) {
$this->redirect(array('form/index'));
}
}
$this->render('login', array('model' => $model));
}

我的LoginForm Model里面,我要取userdomain的值,但是一直为空

class LoginForm extends CFormModel {

public $username;
public $password;
public $userdomain;
private $_identity;


/**
* Declares the validation rules.
* The rules state that username and password are required,
* and password needs to be authenticated.
*/
public function rules() {
return array(
// username and password are required
array('username', 'required', 'message' => 'Pls Key In Your NT Account.'),
array('password', 'required', 'message' => 'Pls Key In Your NT Password.'),
array('userdomain', 'required', 'message' => 'Pls Select Your Domain Host.'),
// password needs to be authenticated
array('password', 'authenticate'),
);
}

/**
* Declares attribute labels.
*/
public function attributeLabels() {
return array(
'userdomain'=>'User Domain',
);
}

/**
* Authenticates the password.
* This is the 'authenticate' validator as declared in rules().
*/
public function authenticate($attribute, $params) {
if (!$this->hasErrors()) {
$this->_identity = new UserIdentity($this->username, $this->password, $this->userdomain);
if (!$this->_identity->authenticate())
$this->addError('password', 'Incorrect username or password.');
}
}

/**
* Logs in the user using the given username and password in the model.
* @return boolean whether login is successful
*/
public function login() {
if ($this->_identity === null) {
$this->_identity = new UserIdentity($this->username, $this->password, $this->userdomain);
$this->_identity->authenticate();
}
if ($this->_identity->errorCode === UserIdentity::ERROR_NONE) {
return true;
} else {
return false;
}
}

}


但是我在Question One这里读取来是有值的
username' => string 'dasdasda' (length=8)
'password' => string 'asdasdasd' (length=9)
'userdomain' => string 'xxxxx' (length=5)
...全文
87 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
艾派德迷你2 2014-03-13
  • 打赏
  • 举报
回复
我再仔细查咯一下.. userdomain已经传给Model咯.. 但是我从Model里面传到Component / UserIdentity的没有userdomain/ 问题出在这里 CUserIdentity的构造函数 默认只有构造username,password... 所以不能传值给CUserIdentity. 必须在component / UserIdentity里面再定义一个方法.. 把userdomain给传递进去

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧