如何在Yii1中创建时在输入表单字段中显示登录用户名?

时间:2015-10-13 12:49:52

标签: php yii

我有一个表格,可以上传他/她自己的CV文件(docx / pdf)。我有一个下拉菜单“员工姓名”,其中只显示列表中的登录用户名。但现在我想要在输入字段中显示登录用户名。我可以这样做。任何人都可以给我代码示例。因为我编码很差。 这是我的代码:

        if($UserType == "employee")
    { 
        $criteria=new CDbCriteria();
        $criteria->condition = "status= 'active' and id = $ID";
        echo $form->dropDownListGroup(
            $model,
            'user_id',
            array(
                'wrapperHtmlOptions' => array(
                    'class' => 'col-sm-5',
                ),
                'widgetOptions' => array(
                    'data' => CHtml::listData(User::model()->findAll($criteria), 'id', 'user_id'),

                    'htmlOptions' => array('prompt'=>'Select'),
                )

            )
        );

        }

user name input field logged-in user name

1 个答案:

答案 0 :(得分:0)

这就是我的方式:

首先,在/ protected / components中,我设置了一个会话变量来存储登录的用户名:

public function authenticate()
{
  $user = Users::model()->find('user = ? ', array($this->username)); //user entered when trying to log in
...
}

如果验证正确:

public function authenticate()
{
 ...
  $session = new CHttpSession;
  $session->open(); //session_start
  $session['user'] = $user; //$user is the logged-in username
 ...
}

在控制器操作中创建:

public function actionCreate(){
  $session = new CHttpSession;  
  $session->open();
  $user = $session['user'];

  ...

  $this->render('create',array(
    'user'=>$user,
    'model'=>$model,
    ...
  ));
}

在视图中(例如在/ _form中):

...
$model->user = $user;

$form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
    'id'=>'user-form',
    'enableAjaxValidation'=>false,
    'htmlOptions' => array('enctype' => 'multipart/form-data'),
));
...
echo $form->dropDownList($model,'user',...); //Here, the attribute 'user' of the model $model will have the logged-in user-name
...

假设您有一个名为' user'在你的模型中。如果没有,那么,在/ model中,创建一个辅助属性' user'为了在/ _form中使用此属性:

class YourModel extends CActiveRecord
{
  public $user; //$variable used to set the logged-in username
 ...
}