Php 如何从登录表单传递第三个参数来验证用户
嗨,我正在使用登录表单中的第三个字段我的登录表单代码如下所示Php 如何从登录表单传递第三个参数来验证用户,php,yii,Php,Yii,嗨,我正在使用登录表单中的第三个字段我的登录表单代码如下所示 <div class="row"> <?php echo $form->labelEx($model,'username'); ?> <?php echo $form->textField($model,'username'); ?> <?php echo $form->error($model,'username'); ?> </div> <div
<div class="row">
<?php echo $form->labelEx($model,'username'); ?>
<?php echo $form->textField($model,'username'); ?>
<?php echo $form->error($model,'username'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password'); ?>
<?php echo $form->passwordField($model,'password'); ?>
<?php echo $form->error($model,'password'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'userrole'); ?>
<?php
$data = Userrole::model()->findAll();
echo $form->dropDownList($model, 'userrole', CHtml::listData($data, 'id', 'userType'));
?>
<?php echo $form->error($model,'userrole'); ?>
</div>
在这里,我应该传递第三个参数来验证用户,以便如何传递给UserIdentity类。UserIdentity类仅定义用户名、密码属性,因此它将仅获取用户名和密码,因此,如何获取第三个用户名和密码。因此,您可以进行以下更改以将userole传递给CUserIdentity
1) 更新您的表单(我假设它是LoginForm?)
公共角色
然后在authenticate方法中,更新对UserIdentity的调用以包含userrole
$this->_identity=new UserIdentity($this->username,$this->password, $this->userrole);
然后在UserIdentity.php文件中添加以下内容:
public $userrole;
public function __construct($username, $password, $userrole)
{
$this->username = $username;
$this->password = $password;
$this->userrole = $userrole;
}
您可能需要对其进行一些调整,但这是向上传递变量所需操作的一般要点。确保更新表单::rules()数组,以便正确验证userrole。向我们展示您的模型规则。作为参考,您可能需要详细阅读。