我对代码点火器很新。 是否有针对不同背景提供不同视图的最佳实践。 例如,我想为具有相同控制器的移动用户代理提供特定页面。
答案 0 :(得分:9)
对此没有严格的规定。您可以根据需要构建视图文件,并调用$this->load->view()
为控制器中的不同结果加载不同的视图文件。根据我的经验,CodeIgniter非常公开地适应您组织应用程序文件的方式。
在您的示例中,我可能会将system/application/views
文件夹分为两个子文件夹:桌面浏览器为main
,移动浏览器为mobile
:
system/
application/
views/
main/
index.php
some_page.php
...
mobile/
index.php
some_page.php
...
在控制器的早期部分,比如说构造函数,您可以决定用户代理请求它,然后根据它选择main
或mobile
,然后从控制器中相应地显示您的视图动作。
一些快速的代码片段,为您提供更好的创意,因为您是新手......
// Place this just below the controller class definition
var $view_type = 'main';
// Controller constructor
function MyController()
{
parent::Controller();
if ($this->agent->is_mobile())
{
$this->view_type = 'mobile';
}
else
{
$this->view_type = 'main';
}
}
// Example action
function some_page()
{
// ...
// This comes from the 'var $view_type;' line above
$this->load->view($this->view_type . '/some_page');
}
以及一些有用的参考资料供你探索:
希望我的解释有所帮助,并希望您对CodeIgniter感兴趣:)