Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从登录表单传递第三个参数来验证用户_Php_Yii - Fatal编程技术网

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。

向我们展示您的模型规则。作为参考,您可能需要详细阅读。