为什么我不能在 Yii 2 的控制器动作中设置 class 别名

Why I cannot set class alias in controller's action in Yii 2

在我的 SiteController -> actionLogin 中,我试图设置 class class LoginForm 的别名。以下是失败的尝试

public function actionLogin()
{
    if (!\Yii::$app->user->isGuest) {
        return $this->goHome();
    }

    class_alias('LoginForm', 'lf_alias');
    class_alias('LoginForm', 'lf_alias', true);

    class_alias('common\models\LoginForm', 'common\models\lf_alias');
    class_alias('common\models\LoginForm', 'common\models\lf_alias', true);
    class_alias('common\models\LoginForm', 'lf_alias', true);

    $model = new lf_alias();
    // ... rest of the code

我收到以下错误

PHP Fatal Error – yii\base\ErrorException

Class 'frontend\controllers\lf_alias' not found

我正在使用 Yii2 高级模板

您可以使用运算符 use:

设置 namespace\class 别名
use common\models\LoginForm as lf_alias
class_alias('common\models\LoginForm', 'anyname');

所以你必须这样称呼它

$model = new \anyname();