Networking\InitCmsBundle\Controller\MenuItemAdminController::renderJson PHP Method

renderJson() public method

public renderJson ( $data, $status = 200, $headers = [] )
    public function renderJson($data, $status = 200, $headers = array())
    {
        $response = parent::renderJson($data, $status, $headers);
        $data = json_decode($response->getContent(), true);
        if (!array_key_exists('message', $data)) {
            /** @var Request $request */
            $request = $this->container->get('request_stack')->getCurrentRequest();
            //getFlashBag()->get('notice'
            if ($message = $this->get('session')->getFlashBag()->get('sonata_flash_success')) {
                $data['is_new_menu_item'] = $this->isNewMenuItem;
                $data['status'] = 'success';
            } elseif ($message = $this->get('session')->getFlashBag()->get('sonata_flash_error')) {
                $data['status'] = 'error';
            } elseif ($data['result'] == 'ok') {
                $request->request->all();
                $message = 'flash_' . str_replace('Action', '', $this->getCaller()) . '_success';
                $data['is_new_menu_item'] = $this->isNewMenuItem;
                if ($this->isNewMenuItem) {
                    $data['html'] = $this->placementAction();
                }
                $data['status'] = 'success';
            } else {
                $request->request->all();
                $message = 'flash_' . str_replace('Action', '', $this->getCaller()) . '_error';
                $data['status'] = 'error';
            }
            if ($message) {
                $data['message'] = $this->admin->trans($message);
            }
        }
        if (!array_key_exists('html', $data)) {
            $data['html'] = $this->listAction($this->get('session')->get('admin/last_page_id'));
        }
        if ($response instanceof JsonResponse) {
            $response->setData($data);
        } else {
            $response->setContent(json_encode($data));
        }
        return $response;
    }