问候语
我已将Yii2应用程序上传到Web服务器(非本地):http://acastro.wc.lt/
问题在于,当尝试在ENG或PT语言之间切换时,框架会出现ERROR#1 - 发生内部服务器错误。
在我的Layout.php中,我在nav :: Widget中有以下链接:
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => [
['label' => 'ENG', 'url' => ['/site/langus'], 'visible' => Yii::$app->user->isGuest],
['label' => 'PT', 'url' => ['/site/langpt'], 'visible' => Yii::$app->user->isGuest],
在我的siteController中,我有动作在实时翻译应用程序的语言之间切换:
public function beforeAction($action) {
if (Yii::$app->session->has('lang')) {
Yii::$app->language = Yii::$app->session->get('lang');
} else {
Yii::$app->language = 'us';
}
return parent::beforeAction($action);
}
public function actionLangus(){
Yii::$app->session->set('lang', 'us'); //or $_GET['lang']
return $this->redirect(Url::toRoute(['site/index']));
}
public function actionLangpt(){
Yii::$app->session->set('lang', 'pt'); //or $_GET['lang']
return $this->redirect(Url::toRoute(['site/index']));
}
在我的MAC OSX Yosemite中由MAMP安装的本地主机上,链接运行良好,并实时更改应用程序语言,但在实时服务器中,链接ENG和PT会抛出ERROR#1。
也许我在重定向表达式
中的操作存在问题Yii::$app->session->set('lang', 'pt'); //or $_GET['lang']
任何可能导致此行为的问题的想法仅在实时服务器中?服务器中的PHP将更新为最新版本和最新版本之一。
答案 0 :(得分:2)
不确定这是否是问题,因为一切正常。但请确保您没有任何短标签。除了<?
和<?=
之外,您应该没有<?php
。通常本地安装更放松,但服务器上的短标签关闭
的修改
也可以尝试返回$ this-&gt; redirect(['site / index']);