我的問題是Kohana只渲染視圖。當我在Controller_Other中Kohana使視圖:: factory('/ foo/bar')在foo類中的打擊條
View::factory('/foo/bar')
它首先沒有命中Controller_Foo。我希望它擊中控制器,然後渲染視圖。
class Controller_Other extends Controller_Template {
public $template = 'main';
public function action_index() {
$this->template->body = View::factory('/foo/bar');
}
}
我將如何得到它通過控制器首先運行:
class Controller_Foo extends Controller_Template {
public function action_bar() {
$this->myVar = 'foo';
}
}
,這樣在視圖中,$myVar
總是在views/foo/bar.php
設置,當我把它從其他View::factory()
?
編輯:
必須有比強迫action_bar
來呈現自己的觀點,以字符串,然後去一個更清潔的方式:
$foo = new Controller_Foo($this->request, $this->response);
$this->template->body = $foo->action_bar();
內部請求看起來像我要去的。我只是想讓action_bar成爲它自己的東西,以便每次渲染該視圖時,我都不需要在其他地方設置myVar。順便說一句,是$ this-> myVar吧?不應該只是$ myVar嗎?任何人,你完全解決了我的問題。這比創建一個新的控制器對象並調用該方法要乾淨得多。 – tester
是的,'$ this-> myVar'應該是'$ myVar',謝謝你爲我指出來。 :)編輯我的答案。很高興我能幫助你。 :) – egis