1

でサードパーティのライブラリに取り組んでいPROJECTROOT/libraries/mylibます。にコントローラがありmylib/controllers、動作しています。li3 は、ビューが期待されていることを教えてくれますPROJECTROOT/app/views/- どうすればビューをロードできますmylib/viewsapp?

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 に答える