невозможно отобразить представление с контроллера в yii - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь визуализировать представление с контроллера после перемещения моего сайта на новый сервер, но здесь это не работает. когда я показываю что-то в контроллере без рендеринга, он работает. означает, что я могу получить доступ к методу контроллера. он отлично работает на моем старом домене. Я использую yii с wordpress, и мой проект yii находится в подкаталоге. основной макет отображается успешно, но не представление в views / site.


        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, тогда он показать данные точно.

где я не прав. здесь показано, что «произошла внутренняя ошибка сервера», есть ли способ узнать точную ошибку вместо общей ошибки?

1 Ответ

0 голосов
/ 11 мая 2020

Чтобы ответить на ваш первоначальный вопрос: «Есть ли способ узнать точную ошибку вместо общей ошибки?»

Инструменты отладки: 1. Echo's - Каково содержимое вашего контроллера? Как вы пытаетесь отладить свой контроллер? В частности, дважды проверьте, что вы не используете эхо в контроллерах, потому что это было приемлемо со старыми версиями yii2, но не с более поздними версиями, и использование эха в контроллерах может привести к внутренним ошибкам сервера. Yii2 issue 16014 Предпочтительно использовать что-то вроде:

    Yii::$app->session['myvariable']  = $names;

вместо:

    echo $names;

с вашего контроллера, которое вы можете просмотреть на панели инструментов отладки в разделе «Состояние». .Запрос ... Сессия. Обновите свою версию Yii в своем composer. json и запустите composer update, чтобы серверная php версия была совместима с более поздней версией yii2.

var_dumps ($ names) будет полезно, если вы можете получить доступ к своему представлению. Когда вы можете получить доступ к своему обзору. Нажмите F12. Используя Dom Explorer, вы сможете выделить определенные c разделы.

Обратите внимание, в каком формате находятся ваши значения, которые вы просматриваете после нажатия F12. Несколько значений в фигурных скобках - Json, и их нужно будет декодировать в массив php, а затем изолировать до тех пор, пока не будет извлечена фактическая переменная, например.

    $translatedId = Yii::$app->request->post('editableKey');
    $json = Json::decode($translatedId, true);
    $id = $json['id']; 

Здесь editableKey находится в Json формат при просмотре с F12. Мы используем Json для декодирования и дальнейшего кода для выделения значения $ id.

Внутренние ошибки сервера часто возникают, когда значение Json не было декодировано, как в приведенном выше примере.

Обновите свой Yii2. Вот более сложный шаблон, который может вам пригодиться:

   "minimum-stability": "stable",
    "require": {
        "php": ">=7.4.1",
        "yiisoft/yii2": "~2.0.33",
        "yiisoft/yii2-bootstrap": "~2.0.9",
        "bower-asset/bootstrap": "~3.4.1",
        "npm-asset/jquery": "^2.2",
        "bower-asset/ladda": "0.9.8",
        "yiisoft/yii2-bootstrap4": "~2.0.8",
        "yiisoft/yii2-swiftmailer": "~2.0.0 || ~2.1.0",
        "sjaakp/yii2-pluto": "*",
        "himiklab/yii2-recaptcha-widget" : "*",
        "bizley/cookiemonster": "*",
        "vlucas/phpdotenv": "*",
        "insolita/yii2-migration-generator": "~3.1",        
        "ifsnop/mysqldump-php": "*",
        "supplyhog/yii2-clipboardjs" : "dev-master",
        "devgroup/yii2-tag-dependency-helper": "*",
        "warrence/yii2-kartikgii": "dev-master",
        "kartik-v/yii2-bootstrap4-dropdown": "@dev",
        "kartik-v/yii2-editable": "@dev",
        "kartik-v/yii2-grid":"@dev",
        "kartik-v/yii2-widget-timepicker": "@dev",
        "kartik-v/yii2-date-range": "*",
        "kartik-v/yii2-social": "@dev",
        "kartik-v/yii2-dynagrid": "dev-master",
        "kartik-v/yii2-tree-manager": "@dev",
        "kartik-v/yii2-mpdf":"dev-master",
        "kartik-v/bootstrap-star-rating": "@dev",
        "kartik-v/yii2-slider": "dev-master",
        "kartik-v/yii2-number" : "@dev",
        "mpdf/mpdf":"~8.0.0",
        "2amigos/yii2-google-maps-library" : "*",
        "2amigos/yii2-ckeditor-widget" : "~2.1",
        "seostats/seostats": "dev-master",
        "linslin/yii2-curl":"*",
        "paypal/rest-api-sdk-php": "*",
        "monolog/monolog":"*",
        "ruskid/yii2-csv-importer": "dev-master",
        "phpoffice/phpspreadsheet":"*", 
        "league/omnipay": "*",
        "paragonie/random_compat": "*",
        "symfony/process": "3.0.*@dev",
        "google/cloud-translate": "*"
      },
        "require-dev": {
           "yiisoft/yii2-debug": "~2.1.0",
           "yiisoft/yii2-gii": "~2.1.0",
           "yiisoft/yii2-faker": "~2.0.0",
           "codeception/codeception": "^4.0",
           "codeception/verify": "~0.5.0 || ~1.1.0"
      },
      "config": {
           "process-timeout": 1800
      },
     "fxp-asset": {
           "installer-paths": {
           "npm-asset-library": "vendor/npm-asset",
           "bower-asset-library": "vendor/bower-asset"
          }
      },
     "repositories": [
     {
        "type": "composer",
        "url": "https://asset-packagist.org"
     }
    ], 
   "scripts": {
        "post-install-cmd": "php init --env=Development --overwrite=n"
   }
}
...