2016-05-12 64 views
0

在我的SiteController - >actionLogin中,我試圖設置類別別名LoginForm。下面是失敗的嘗試爲什麼我不能在控制器的Yii中設置類別別名2

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 

我得到我使用Yii2高級模板

+1

爲什麼要使用類的別名? – Tebe

+0

我想學習class_alias,別名自動加載類 – SohelAhmedM

+2

它最好避免使用它們,並堅持命名空間 – Tebe

回答

1
class_alias('common\models\LoginForm', 'anyname'); 

所以你要稱呼它

$model = new \anyname(); 
+0

這不工作,拋出錯誤中提到的錯誤 – SohelAhmedM

+0

@SohelAhmedM我剛纔測試了它,它工作正常。 –

+0

您使用的是PHP和Yii版本? – SohelAhmedM

2

您可以設置命名空間\類的別名與運營商使用以下錯誤

PHP Fatal Error – yii\base\ErrorException 

Class 'frontend\controllers\lf_alias' not found 

use common\models\LoginForm as lf_alias 
+0

肯定這是一個很好的方法,但不是我的問題的確切答案 – SohelAhmedM

相關問題