Yii2 выводит белый экран. Почему?

Уже который час не могу понять, почему Yii2 Advanced выводит страницы только от главного контроллера (который в конфиге указан как 'defaultRoute' => 'site'). Все остальные страницы не открываются. Вернее, открываются, но выводится просто пустой экран без всяких сообщений об ошибках.

Я максимально упростил вывод: убрал из контроллеров поведения для определения, авторизирован пользователь или нет; убрал из конфига компонент, который отвечает за авторизацию; закомментировал там же все ненужные для теста инструкции.

В backend/web/index.php добавил:
error_reporting(-1);
ini_set('display_errors', true);


В php.ini установил:
error_reporting = E_ALL
display_errors = On
display_startup_errors = On


Сервер крутится на связке Apache 2 и Nginx.
Запрос:
GET /yii2/backend/web/index.php?r=test%2Findex HTTP/1.1
Host: *мой_хост*
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: ru,en-US;q=0.8,en;q=0.6
Cookie: __utma=222857945.2129854740.1435519076.1435519076.1435519076.1; __utmc=222857945; __utmz=222857945.1435519076.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _csrf=1d0e0163f286b1f1fb234401912aafe896bf696683f3199f7e5719a51796907ba%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%226FsOE_vxJy0QFmU7tkp5OyVHpkbny6cw%22%3B%7D; _identity=94b058838e402ac88ced81c18744afa51af5d1ab75e6f8b4e4e714b420bec60da%3A2%3A%7Bi%3A0%3Bs%3A9%3A%22_identity%22%3Bi%3A1%3Bs%3A14%3A%22%5B1%2C%22%22%2C2592000%5D%22%3B%7D; PHPSESSID=kc7qvnb2no2edlfc3kcnadh5o5


Ответ:
HTTP/1.1 200 OK
Server: nginx/1.6.2 (Ubuntu)
Date: Thu, 05 Nov 2015 15:30:06 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Connection: keep-alive
Vary: Host
X-Powered-By: PHP/5.6.4-4ubuntu6.4


В результате нет соответствующих ошибок ни в апачевском error.log, ни в yii-шном app.log. Директория runtime, естественно, доступна для записи.

На всякий случай привожу код контроллера и представлений.

Контроллер:
<?php
namespace backend\controllers;

use Yii;
use yii\web\Controller;

/**
 * Created by PhpStorm.
 * User: max
 * Date: 05.11.15
 * Time: 16:21
 */
class TestController extends Controller {
	/**
	 * Renders the index page.
	 * @return string rendered code
	 */
	public function actionIndex() {
		$this->layout = 'test';
		$this->render('//index/test');
	}
}


Лэйаут test.php:
<html>
<body>
<?= $content; ?>
</body>
</html>


Повторюсь, страницы из главного контроллера SiteController выводятся нормально.
Что интересно: если в $this->render прописать несуществующее представление, то будет выведена ошибка. Т.е. код до выполнения метода render ещё отрабатывается. Также, если в самом представлении намеренно сделать ошибки, это снова будет выведено. Получается, что и сам метод render отрабатывается.

В чём может быть проблема?
  • Вопрос задан
  • 2276 просмотров
Решения вопроса 1
iiifx
@iiifx
PHP, OOP, SOLID, Yii2, Composer, PHPStorm
return $this->render('//index/test');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы