У меня есть это действие в ZF3, файл представления находится в каталоге, как определено.
public function indexAction() {
$view = new \Zend\View\Renderer\PhpRenderer();
$html = $view->render('application/index/new.phtml');
}
Но я получил эту ошибку
Zend\View\Renderer\PhpRenderer::render: Unable to render template "application/index/new.phtml"; resolver could not resolve to a file
Я не использую ViewModel, потому что использую одно и то же представление в разных действиях, а в ZF3 нет ServiceLocator.
Передача PhpRenderer от Factory к контроллеру заставит его работать
Возможный дубликат zf3 получает другой вид в действии
"I am not using ViewModel because I am using same view in different actions and there is no ServiceLocator in ZF3" -> Фактически назначается раскладка по умолчанию, по умолчанию это layout/layout. Также есть ServiceLocator, он называется ServiceManager. Однако это недоступно в контроллерах, вы должны получить то, что вам нужно, в Factory и передать это своему контроллеру. И использование другого представления / шаблона для нескольких действий или всего контроллера не является проблемой, установите его в функции __construct() вместо indexAction(), как в моем ответе на ваш другой вопрос.
Я передаю PhpRenderer с завода на контроллер, и он работает






Вы только что спросили этот вопрос, который имеет сильное отношение к этому. Я бы посоветовал вам следовать базовому руководству блога или работать вместе с Книга Олега Кривцова - Использование Zend Framework 3, который охватывает все основы для вас. Кроме того, используйте правильные теги здесь, в StackOverflow.