我试图渲染视图从控制器后,我的网站移动到新的服务器,但它不工作在这里。当我显示的东西在控制器没有渲染视图,然后它的工作。这意味着我可以访问控制器的方法。它是在我的旧域工作得很好。我正在使用yii与wordpress和我的yii项目是在子目录。主要布局是渲染成功,但不是在视图/网站的视图。
return $this->render('index', [
'names' => $names,
'phones' => $phones
]);
这是我视图代码
<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use yii\grid\GridView;
use yii\helpers\Url;
use app\models\StopTimes;
use app\controllers\SiteController;
yii::$app->assetManager->forceCopy = true;
$isActiveHide = $_GET['debug'] == 'yes' ? false: true ;
$debugMode = $_GET['debug'] == 'yes' ? true: false ;
echo "it is here";
如果我尝试回显$names或$phones,则它会准确显示数据。
我错在哪里。这里显示“发生了内部服务器错误”有没有办法得到确切的错误是什么,而不是一般的错误?
2条答案
按热度按时间nafvub8i1#
为了回答你最初的问题“有没有办法得到确切的误差,而不是一般的误差?”
调试工具:1. Echo 's-Controller的内容是什么?您如何尝试从Controller进行调试?更具体地说,请仔细检查您没有在Controller中使用echo' s,因为这在旧版本的yii 2中是可以接受的,但在新版本中是不可以接受的,并且在Controller中使用echo 's会导致内部服务器错误。Yii2 issue 16014最好使用类似以下的内容:
而不是:
在composer.json中升级您的Yii版本并运行composer update,使服务器的php版本与yii 2的后续版本兼容。
1.如果您可以访问视图,var_dumps($names)将非常有用。
1.当您可以访问视图时,请按F12。使用Dom Explorer,您将能够隔离特定的部分。
1.注意按下F12后看到的值的格式。花括号中的多个值是Json,必须解码到php数组中,然后进一步隔离,直到提取出实际的变量。
在这里,当使用F12查看时,editableKey是Json格式。我们使用Json进行解码,并进一步编码以隔离$id值。
内部服务器错误通常发生在Json值未解码时,如上面的示例所示。
1.升级你的Yii 2。这里是一个更高级的模板,你可能会觉得有用:
fwzugrvs2#
如果你想呈现你的控制器的view.php,
此外,无论您在返回中传递的参数是什么,都可以在视图文件中访问