質問

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

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

public $template = 'template_file_name';

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

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

または

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

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

  

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

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

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

役に立ちましたか?

解決

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

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

テンプレートコンストラクターを次のように実行します。

public function __construct()
    {
        $this->template = 'foobar';
        parent::__construct();
    }

他のヒント

このようにします:

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/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top