1
ershisi 2016-02-26 20:23:18 +08:00 1
你不想这样的话,应该是打算把导航数据放在初始化的对象里面?
|
2
opennet 2016-02-26 20:31:14 +08:00 1
用类继承?
|
3
raincious 2016-02-26 20:36:44 +08:00 1
你在什么地方初始化那条导航菜单的?
或许你可以给模板引擎设定一个钩子(如果模板引擎支持的话),在需要调用导航的时候执行这个钩子来进行操作。 如果上述方法不合适的话,或许你可以做一个 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 ,控制不好的话或许又是个不好的东西。 |
5
jsonline 2016-02-27 11:44:50 +08:00 via Android 1
生成文件
include |
6
Clarencep 2016-02-27 14:23:02 +08:00 1
这个要看具体框架吧?你用的什么框架? 如果是 Yii 框架就简单了,直接封装个 widget 搞定~
|
7
realpg 2016-02-27 17:21:48 +08:00 1
我是放在 BASE_CONTROLLER 里的
需要导航的 Controller extends 这个 BASE CONTROLLER 不需要导航的去 extends 正常的 Controller 基类 |
8
dawniii 2016-02-28 15:21:32 +08:00 1
相信你没看 laravel 的手册
把数据共享给所有视图 view()->share('data', [1, 2, 3]); |
9
precisi0nux OP @dawniii 确实,刚从 CI 转过来。好多东西不习惯。谢谢指点。
|