public function editAction()
    {
        $success    = null;
        $params     = $this->params();
        $request    = $this->getRequest();
        $menuId     = $params->fromRoute( 'menuId' );
        $menu       = $this->getModel()
                           ->find( $menuId );

        if ( empty( $menu ) )
        {
            $this->getResponse()
                 ->setStatusCode( 404 );

            return;
        }

        $form = $this->getForm( $menu );

        if ( $request->isPost() )
        {
            $form->setData( $request->getPost() );

            if ( $form->isValid() && $menu->save() )
            {
                $success = true;
                $form->bind( $menu );

                $this->messenger()
                     ->add( 'menu.form.success',
                            'menu', Message::LEVEL_INFO );
            }
            else
            {
                $success = false;

                $this->messenger()
                     ->add( 'menu.form.failed',
                            'menu', Message::LEVEL_ERROR );
            }
        }

        return array(
            'success'   => $success,
            'form'      => $form,
            'menu'      => $menu,
        );
    }