0

ログインしたユーザーの役割を一致させるために、 accessRules() 関数で以下のコードを使用しています。ロールは、認証プロセス中に設定されます。

 $this->setState('role', $record->role);

accessRules() 関数のコードは次のとおりです。

    $role="";
    if(Yii::app()->user->getId()===null)
    {
            $role="guest";
    }
    else
    {
        $role=Yii::app()->user->role;
    }

   return array(
        array('allow', 'actions'=>array('index','view'),
            'users'=>array('*'),
        ),
   );

このコードはローカル マシンでは正常に動作していますが、サーバーにアップロードするとUse of undefined constant guest - assumed 'guest'エラーが発生します。これの理由は何ですか、どうすれば解決できますか。ありがとう!!!

4

2 に答える 2

1
$role="";
if(Yii::app()->user->getId()===null)
{
        $role="guest";
}
else
{
    $role=Yii::app()->user->role;
}

次のように簡略化できます。

$role = "guest";
if(Yii::app()->user->id != null) {
    $role = Yii::app()->user->role;
}

これで問題が解決するかどうか試してみてください。

これを行うこともできます:

$role = "guest";
if(!Yii::app()->user->isGuest) {
    $role = Yii::app()->user->role;
}

ただし、変数を別の$role場所で使用している可能性があるため、代わりにそれらの行が問題を引き起こしているかどうかを確認することをお勧めします。

于 2013-07-22T05:29:02.363 に答える