AjaxContext
헬퍼는 ZF1에서 깔끔한 기능이었고 여러 곳에서 사용되었습니다.zend framework 2 또는 AjaxContext에서 ajax를 사용하는 방법은 무엇입니까?
이것이 ZF2에서 사용 가능한지 궁금합니다.
나는 테스트를하고 추가 :
public function init()
{
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('input', 'html')
->addActionContext('number', 'html')
->initContext();
}
를 컨트롤러에하는 액션 추가 :
public function inputAction()
{
$form = new AddInput();
return ['form' => $form];
}
파일 input.ajax.phtml
와 아약스 전화 : $.get('/form/input/format/html').css("display","block");
을 요청은 확인을 통해 진행되며,085,513,210 코드,하지만 난이 오류를
Fatal error: Uncaught exception 'Zend\View\Exception\RuntimeException' with message 'Zend\View\Renderer\PhpRenderer::render: Unable to render template "form/index/input"; resolver could not resolve to a file' in C:\xampp\htdocs\Zend-Project\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php on line 454
(!) Zend\View\Exception\RuntimeException: Zend\View\Renderer\PhpRenderer::render: Unable to render template "form/index/input"; resolver could not resolve to a file in C:\xampp\htdocs\Zend-Project\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php on line 454
# Time Memory Function Location
1 0.0003 139048 {main}() ..\index.php:0
2 0.0969 4288136 Zend\Mvc\Application->run() ..\index.php:12
3 0.1463 6125720 Zend\Mvc\Application->completeRequest() ..\Application.php:310
4 0.1463 6125832 Zend\EventManager\EventManager->trigger() ..\Application.php:326
5 0.1463 6125904 Zend\EventManager\EventManager->triggerListeners() ..\EventManager.php:208
6 0.1464 6127112 call_user_func () ..\EventManager.php:468
7 0.1464 6127128 Zend\Mvc\View\Http\DefaultRenderingStrategy->render() ..\EventManager.php:468
8 0.1464 6127176 Zend\View\View->render() ..\DefaultRenderingStrategy.php:128
9 0.1465 6128304 Zend\View\View->renderChildren() ..\View.php:196
10 0.1465 6128936 Zend\View\View->render() ..\View.php:231
11 0.1466 6129560 Zend\View\Renderer\PhpRenderer->render() ..\View.php:203
어떤 무엇이 잘못되었는지 아이디어, 아니면 대안을 렌더링거야? 감사.
편집 :
나는 DefaultRenderingStrategy
사용하여이 작업을 수행하는 경우 : 내가 그것을 덕분에 작동하도록 관리
:
public function inputAction()
{
$result = new ViewModel(array('some_parameter' => 'some value',));
$result->setTerminal(true);
return $result;
}
var_dump($this->result);
내가 null
EDIT2거야 @ 샘. 여기 내 단계는 다음과 같습니다
javascript
$.get('/form/input', { name: "John", time: "2pm" }).done(function(data) {
$('#some_div').append(data);
});
controller
public function inputAction()
{
$request = $this->getRequest();
$results = $request->getQuery(); // this is the get string
$result = new ViewModel(['result' => $results]);
$result->setTerminal(true);
return $result;
}
view
<?php
echo '<div>'.$this->result->name.'</div>';
결과가 될 것입니다 <div>John</div>
감사합니다.
html로 보낼 수 있는지 궁금해합니다. – Patrioticcow
HTML을 보내려면 기본 렌더링 전략 (예 : 텍스트/HTML 허용)을 사용하고'$ vm-> setTerminal (true)' – Sam
나는 그것을 알아낼 것이라고 생각한다. 감사 – Patrioticcow