raincious
2016-02-26 20:36:44 +08:00
你在什么地方初始化那条导航菜单的?
或许你可以给模板引擎设定一个钩子(如果模板引擎支持的话),在需要调用导航的时候执行这个钩子来进行操作。
如果上述方法不合适的话,或许你可以做一个 Base Controller ,然后在这个 Base Controller 的__construct 上写好 NavModel 的初始化和与 View 交互的过程,然后让所有需要用到这条导航的 Controller 全都变成这个 Controller 的子类。有点像:
class BaseController {
protected $view = null;
public function __construct() {
// build a view here or parent::__construct();
$this->view->assign('Nav', NavModel::getAll());
}
}
class HomePage extends BaseController {
public function get($request, $respond) {
$respond->write($this->view->render('Home'))
}
}
但是这样会做出一棵 Controller Three ,控制不好的话或许又是个不好的东西。