2013-04-04 49 views
2

我是ci的新手,任何人都可以帮助我,或者在我的代码和最佳实践中给出一些建议吗?我有一个foreach声明,需要使用一个函数来显示一个巨大的数据。这里是我的示例代码。 预先感谢您函数在codeigniter中的视图

foreach($data->result() as $d){ 

    if($d->condi){ 
     $sample = myfunction($d->value1, $d->value2, $value->3); 
    } 
    else{ 
     $d->otherdisplay; 
      if($d->condition2){ 
      $sample = myfunction($d->value1, $d->value2, $value->3); 
      } 
    } 
} 
function myfunction($a,$b,$c){ 
     /*do something;*/ 

} 

回答

1

它取决于,无论如何这些methods应该在controllerslibraries,它取决于你的方法can be called from browser or not

如果你想使用一些方法,你需要makesome 使用

library or an helper 

如果你想使用一个web page method使用,在controller

Model = SQL and db stuffs 

Controller = all the php stuffs + data returned from Model 

View = html/js + data returned from Controller 

检查How to create Own libraries in CI

+0

谢谢,顺便问一下,我如何在ci中创建自己的帮助程序或库? tnx再 – 2013-04-04 09:35:54

+0

@BasciBsu不客气只是看看http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html它很简单,你会enojy他们;) – sbaaaang 2013-04-04 09:39:43

+0

@BasciBsu不要忘记检查回答如果我给你所有你需要的信息;) – sbaaaang 2013-04-04 09:40:10

0

你应该把你的功能,在控制器类尽可能(或其他地方,只要你叫他们从控制器)。解析你的数据,然后在视图中循环。这使您的代码保持清洁和组织,并遵守MVC原则。

+0

我会看起来像这样 控制器$数据[ '方法'] = $这个 - >方法的示例代码(); 和我的 查看$ method-> method(param)?? 这是最佳做法吗? – 2013-04-04 09:27:54

1

更好的方法是在CI中创建一个帮助文件,并将该函数放入辅助文件中。 创建您的辅助文件中“应用程序/佣工目录 然后包括这个辅助控制器被调用这个观点, 像

$this->load->helper('name');

而现在,你可以使用的所有功能帮助文件直接在你的视图中,没有任何codeigniter实例。

顾名思义,帮助你完成任务。每个帮助程序文件都是特定类别中功能的集合。

http://ellislab.com/codeigniter/user-guide/general/helpers.html