2016-01-28 1 views
1

Я использую много Ajax в моем проекте Phalcon, и каждый запрос обрабатывается определенным контроллером/действием , где я отключил визуализацию шаблона (только визуализируется представление).Как остановить рендеринг шаблона Phalcon при использовании Ajax?

Как отключить шаблон по всему миру, если вызовы сделаны с помощью Ajax?

+0

Вы должны принять один из ответов. – Timothy

ответ

1

Для конкретного действия вы можете использовать любого из этих реализаций:

public function saveAction() 
{ 
    $this->view->disable(); 

    // Operations go here..... 

    $this->view->pick('some/view/to/display'); 
} 

public function resetAction() 
{ 
    $this->view->disable(); 

    // Operations go here..... 

    echo 'reset action' 
} 

public function cancelAction() 
{ 
    $this->view->disable(); 

    // Operations go here..... 
    $response = new \Phalcon\Http\Response(); 
    $response->setStatusCode(200, 'OK'); 
    $response->setContentType('application/json', 'UTF-8'); 
    $response->setJsonContent('some content goes here', JSON_UNESCAPED_SLASHES); 

    return $response->send(); 
} 
3

Я нашел ответ :)

abstract class ControllerBase extends Controller 
{ 
    /** 
    * Called in each Controller/Action request 
    */ 
    public function initialize(){ 
     if($this->request->isAjax()){ 
      $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); 
     } 

    ... 
+0

Или '$ this-> view-> disable();' – yergo

2

Имеющиеся делают уровни являются:

 
Class Constant   Description Order 
LEVEL_NO_RENDER   Indicates to avoid generating any kind of presentation. 
LEVEL_ACTION_VIEW  Generates the presentation to the view associated to the action. 1 
LEVEL_BEFORE_TEMPLATE Generates presentation templates prior to the controller layout. 2 
LEVEL_LAYOUT   Generates the presentation to the controller layout. 3 
LEVEL_AFTER_TEMPLATE Generates the presentation to the templates after the controller layout. 4 
LEVEL_MAIN_LAYOUT  Generates the presentation to the main layout. File views/index.phtml 5 

Для Дополнительная информация: control-rendering-levels