質問
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')
}
所属していません StackOverflow