Я использую Zend Expressive 2 из-за ограничений версии PHP.Если я возвращаю переменные на первом этапе конвейера (IndexAction), переменные выглядят просто отлично.
Если я делегирую на следующий шаг (VerifyInputAction) и определю, что во входных данных есть ошибка, мне нужно вернуть ошибкупосмотреть скрипт.По какой-то причине он не возьмет с собой переменные, которые я передаю с помощью средства визуализации шаблонов.Он по-прежнему будет загружать шаблон, но не с переменными массива $ data.
Я использую Zend View в качестве средства визуализации шаблонов.
Мой конвейер выглядит следующим образом.
IndexAction ()
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
if ($request->getMethod() !== "POST") {
return new HtmlResponse($this->template->render('app::home-page', ['error' => 'hello']));
} else {
$delegate->process($request);
//return new HtmlResponse($this->template->render('app::home-page'));
}
}
VerifyInputaction ()
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
$data = [];
$file = $request->getUploadedFiles()['recordsFile'];
$fileType = substr($file->getClientFilename(), strpos($file->getClientFilename(), '.'));
// If file type does not match appropriate content-type or does not have .csv extension return error
if (! in_array($file->getClientMediaType(), $this->contentTypes) || ! in_array($fileType, $this->extensions)) {
$data['error']['fileType'] = 'Error: Please provide a valid file type.';
return new HtmlResponse($this->template->render('app::home-page', $data));
}
$delegate->process($request);
}
Другая проблема, которая может выходить за рамки этого вопроса, включает в себя, когда я перехожу к следующему действию в конвейере,если я отправлю скрипт рендеринга там, я получу эту ошибку ...
Last middleware executed did not return a response. Method: POST Path: /<--path-->/ .Handler: Zend\Expressive\Middleware\LazyLoadingMiddleware
Я приложу все усилия, чтобы предоставить больше примеров кода, но из-за этой проблемы у меня могут возникнуть некоторые проблемыс этим.
Спасибо!