2009-06-15 110 views
0

我正在尝试为已选择任意数量的可用“模块”的用户加载一组“模块”的视图。我可以获取模块的名称或数据库中的任何列。使用CodeIgniter将“模块”数据加载到视图中根据每个用户的动态使用CodeIgniter

load->view($name . '_view'); 

我似乎无法想出一个方法来加载基于'模块'名称的视图的数据,虽然。

//Loads the rows (selected modules) I need for this user into an array 
$modules['modulearr'] = $this->module_model->getModuleUser(); 

    for($i = 0; $i < count($modules['modulearr']); $i++){ 

      //Get the variable from the array 
      $name = $modules['modulearr'][$i]->mod_name; 

      //The below works. 
      $this->load->view($name.'_view'); 

      //The below would not work. (this is the crux of my problem) 
      $data = $this->$name.'_model'->get(); 
      $this->load->view($name.'_view', $data); 
    } 

还拥有基于这样的事实,我不能改变$this->load->THIS_PART动态加载控制器模型的问题。

我对一切都陌生,所以可能有一个基本的概念,我不抓住。如果你能指出我正确的方向;那将是真棒。我可以做一大堆if语句,但看起来很混乱。当然有更好的方法。提前致谢!

回答

0

这是一个资本感问题:数据库中的字段(以数组形式)

$name = $modules['modulearr'][$i]->mod_name; 

有时候是大写字母。我固定它通过使用

$name = strtolower($name); 
$nameMod = $name.'_model'; 

然后

//it doesn't seem to like combinations of things where nameMod is below. 
$data[$name.'_result'] = $this->$nameMod->get() 
$this->load->view($name.'_view', $data); 

我不知道为什么它最初曾在视图装载部分,而不是通过调用模型函数部分的加载数据,但它现在。我正在使用它来进行主登陆(注册或登录后)页面功能,该功能可以选择并显示每个用户添加到他们的个人资料中的模块,我可能会以完全gammy的方式讨论这个问题,但我正在通过制作堆错误,谢谢你的帮助answerers你绝对把我放在正确的轨道

0

也许你想

$data = $this->$name.'_model'->get(); 

你忘了在连接字符串

+0

啊,我的坏,我错过了这个问题,它仍然产生一个串联字符串的解析错误。 – Allansideas 2009-06-15 10:51:03

0

,但似乎无法推测的方式来加载 数据为依据的 “模块”的视图名称。

模块名称似乎是从线

$name = $modules['modulearr'][$i]->mod_name; 

,如果这个工程定义...

$this->load->view($name.'_view'); 

也许你想这样做吗?

$data = $name.'_model'->get(); 

而不是$ this-> name?

如果不工作(我真的不知道你要什么)尝试呼应$这个 - >名,并确保输出使连接到“_model”

相关问题