2011-12-29 67 views
0

我刚刚发现了CodeIgniter的HMVC模块化扩展https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home,它对我的​​需求来说似乎是完美的,但我有一些问题。CodeIgniter:对HMVC和视图的一些怀疑

比方说,我有两个控制器:

  • 网站这是主控制器和用于显示的网页,可以调用用户控制的方法,例如,以显示一种形式
  • 用户控制器用于对用户进行认证,以显示登录/注册表格...

现在我有以下问题:

  1. 如果用户访问用户控制器直接(mysite.com/user/method)我想显示完整的页面,而如果我从站点控制器我想内加载用户的方法只显示一个表单(例如),这可能吗?
  2. 从另一个模块加载的模块的视图会发生什么变化:是自动显示的视图还是需要手动显示,以及视图的行为如何?

回答

2

如果方法正在通过模块:: run()的

还有第三个可选参数,可以让你改变的 行为的功能,使得它返回的数据作为一个字符串,而不是所谓的发送 它到您的浏览器。

如:

//put underscore in front to prevent uri access to this method. 
public function _module1() 
{ 
    $this->load->view('partial_view', array('some data'=>'some data'), TRUE) 
} 

调用它的现场查看内轻松

Modules::run('User/_module1') 
// should show whatever is in partial_view ie: a form 

//an alternative is to pass in any params if the method requires them 
Modules::run('User/_module1', $param) 
+0

没有模块::运行在呼唤你的类/方法不是倒过来。通过将第三个参数添加到视图加载器中,它将以字符串形式检索视图。所以没有输出呈现给浏览器,它现在可以像使用包含一样使用 – Philip 2011-12-29 14:19:19