2

$templateKohana で構築されたサイトの変数を動的に設定できないようです。

Template_Controller クラスを拡張すると、次のようにテンプレート名を設定できます。

public $template = 'template_file_name';

しかし、次のように動的に設定することはできません:

public $template = $this->setTemplate();

また

switch($var):
    default:
       public $template = 'filename';
       break;
endswitch;

$templateコンストラクターで使用して変数を変更する$this->templateと、何らかの方法で Template_Controller が壊れます。

致命的なエラー: 非オブジェクトでのメンバー関数 render() の呼び出し

コンストラクターで設定された変数に基づいて、またはおそらく外部ライブラリからプルされた変数に基づいて、テンプレート ファイル名を設定する必要があります。

これを可能にする方法はありますか?

4

2 に答える 2

8

このリンクに答えがあるかもしれません:

http://stii.co.za/php/overriding-default-template-in-kohana-php/

テンプレート コンストラクターを次のように実行するだけです。

public function __construct()
    {
        $this->template = 'foobar';
        parent::__construct();
    }
于 2009-10-28T13:21:14.823 に答える
5

私はこのようにします:

public function action_myaction()
{
    // template
    $this->template = "template/overlay";
    parent::before();

    // display
    $this->template->title = 'My Action';
    $this->template->content = View::factory('myaction')
}

詳細はこちら: http: //www.workinprogress.ca/kohana32/

于 2011-11-24T17:12:19.337 に答える