0

我有一个可以保存一些数据的控制器。

$pat = $sm->get('Tables\PaymentAttemptsTable');
$pat->save($post);

模块配置具有以下配置:

public function onBootstrap(EventInterface $e)
{
    $em  = $e->getApplication()->getEventManager();
    $em->attach('dispatch', array($this, 'loadConfiguration' ), 100);
}

public function loadConfiguration(EventInterface $e)
{
    $sm  = $e->getApplication()->getServiceManager();

    //if this module
    $exceptionstrategy = $sm->get('ViewManager')->getExceptionStrategy();
    $exceptionstrategy->setExceptionTemplate('error/inserterror');
}

在 PaymentAttemptsTable 模块配置中,我有一个类似的策略。

public function onBootstrap(EventInterface $e)
{
    $eventManager        = $e->getApplication()->getEventManager();
    $eventManager->attach('dispatch', array($this, 'loadConfiguration' ), 100);
}

public function loadConfiguration(EventInterface $e)
{
    $sm  = $e->getApplication()->getServiceManager();

    //if this module
    $exceptionstrategy = $sm->get('ViewManager')->getExceptionStrategy();
    $exceptionstrategy->setExceptionTemplate('error/saveerror');
}

在每一个上,我都有这样的观点。

return array(

'view_manager' => array(
    'exception_template'       => 'error/index',
    'template_map' => array(
        'error/index'             => __DIR__ . '/../view/error/index.phtml',
    ),
    'template_path_stack' => array(
        __DIR__ . '/../view',
    ),
),

);

问题是当我这样做时

throw new SaveError('Table must be a string or instance of TableIdentifier.');

在 PaymentAttemptsTable 类上,我从控制器获取模板而不是表类,有没有办法解决这个问题?

4

1 回答 1

0

如果您查看http://framework.zend.com/manual/2.0/en/modules/zend.view.quick-start.html的控制器和视图模型部分

它向您展示了如何加载不同的视图模板,您需要做的是将视图模板更改为需要在 PaymentAttemptsTable 类中加载的模板。这需要在调用控制器中完成。

Zend.com 的示例

namespace Foo\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class BazBatController extends AbstractActionController
{
    public function doSomethingCrazyAction()
    {
        $view = new ViewModel(array(
            'message' => 'Hello world',
        ));
        $view->setTemplate('foo/baz-bat/do-something-crazy');
        return $view;
    }
}
于 2013-05-01T21:01:56.090 回答