1

我正在开发 3rd 方库PROJECTROOT/libraries/mylib。有一个控制器mylib/controllers,它正在工作。li3 告诉我它需要一个视图PROJECTROOT/app/views/——我怎样才能从而不是加载mylib/views视图app

4

1 回答 1

1

这可以通过在控制器中设置渲染路径来轻松实现。您可能希望对 mylib 中的每个控制器都这样做,因此所有控制器都从其扩展的 BaseController 是一个好主意。然后,您可以使用锂默认调用方法 _init() 来设置配置,如下所示:

class BaseController extends \lithium\action\Controller {

    public function _init() {
        parent::_init();

        $this->_render['paths'] = array(
            'template' => array(
                LITHIUM_APP_PATH . '/views/{:controller}/{:template}.{:type}.php',
                '{:library}/views/{:controller}/{:template}.{:type}.php',
            ),
            'layout' => array(
                LITHIUM_APP_PATH . '/views/layouts/{:layout}.{:type}.php',
                '{:library}/views/layouts/{:layout}.{:type}.php',
            ),
            'element' => array(
                LITHIUM_APP_PATH . '/views/elements/{:template}.{:type}.php',
                '{:library}/views/elements/{:template}.{:type}.php',
            ),
        );
    }

你可以在这里看看:https ://github.com/bruensicke/radium/blob/master/controllers/BaseController.php

请注意,我是这样设置的,因此应用程序可以覆盖特定视图以便进一步自定义它。

此外,在 github 上有一个关于该主题的问题/拉取请求,请看这里:

https://github.com/UnionOfRAD/lithium/pull/650

于 2012-09-20T08:06:33.420 回答