在Yii2中访问模型变量(用户输入)

时间:2019-06-28 18:36:19

标签: php yii2

在common \ model \ LoginForm.php中,我用以下语句声明了一个变量:

public $nhs

在rules()中,我已将此声明为布尔值&必需。这在登录时通过frontend \ views \ site \ login.php作为单选按钮呈现给用户,该按钮为true或false。

在用户登录后,我需要访问用户设置的此变量的值,具体在过程中:

  

frontend \ views \ layouts \ main.php

为了控制呈现给用户的选项。我对Yii2较陌生,正在努力寻找解决方案。

1 个答案:

答案 0 :(得分:1)

如果您在模型中声明了变量,但在数据库中为 NOT 字段,则该变量仅为临时,并且只会持续到发布操作完成并保存数据为止。转到其他动作后,并重新加载模型,值将消失

因此,如果您希望该信息持久处理所有应用程序,则有两种选择:

  1. 删除公共变量,并将该变量设置为数据库中的一个字段,并在用户登录后将其存储。
  2. 将其存储在用户会话中为$ _SESSION ['nhs'] = //发布变量

如果采用第一个选项,并将其存储在已登录的用户模型上,则可以使用(如果用户已连接)在应用程序的任何位置访问该变量:

echo Yii::$app->user->identity->nhs;

如果您选择第二个选项,您将执行以下操作:

echo $_SESSION['nhs'];