codeigniter,从不直接调用视图,有人可以解释一下
Posted
技术标签:
【中文标题】codeigniter,从不直接调用视图,有人可以解释一下【英文标题】:codeigniter, views are never called directly, can someone explain 【发布时间】:2017-09-25 15:35:35 【问题描述】:我刚开始使用 codeigniter。我需要知道的解释 视图永远不会被直接调用。
这是否意味着我不能将 $this->load->view('My_view') 用于另一个视图?
我在核心 php 中创建了一个项目,并决定转换为 codeigniter。在我的项目中,一个页面有不同的部分,所以我在视图中创建了一个主文件 recipes.php。我还创建了一个文件夹,将不同的部分文件放入recipes.php 中。在我的控制器中,我加载了食谱视图,它显示了食谱页面,然后在食谱视图中我使用了 $this->load->('categorymenu')。它工作得很好。我没有传递任何数据,因为这部分包含简单的 html。但我很困惑,这不是加载视图的正确方式。
所以请有人详细解释一下。我是在做正确的事,还是有其他方法。
我还在控制器中加载了视图并传递到控制器中的主视图,这也很完美。但正如我提到的,我不确定哪种方法是正确的。如果这是一个愚蠢的问题,我深表歉意。
【问题讨论】:
Best method of including views within views in CodeIgniter的可能重复 ***.com/questions/15221371/… -- 看看这个... 我做了你第一次尝试时所做的事情,一直运行良好。但是您的第二种方法以及@RïshïKêshKümar 建议的 asnwer 中提到的最佳方法似乎是正确的做法,这样您就不必逐个查看视图进行更改,一切都在控制器中。 实际上我确实检查了@RïshïKêshKümar 的回复并使用了代码。这对我帮助很大。我对正确的感到困惑。 @Fayjovi .. 谢谢你!兄弟 【参考方案1】:由于您对 Codeigniter 很幼稚,因此您提出的任何问题都不是愚蠢的。 现在你的问题的答案是,
-
您可以在另一个视图中加载一个视图,这是绝对可以接受的,因为在某些情况下,您必须在网站的所有页面中放置标题,此时您必须在另一个视图中加载该视图。李>
其次,加载视图的正确方法是在控制器中。因为控制器是模型和视图之间的中介。如果您想在页面中显示一些数据库数据,您必须通过模型中创建的函数获取该数据,然后在控制器中加载视图并在其中传递数据。
这是控制器的代码
public function temp()
$data['recs']=$this->my_model->my_function(); //getting data to pass in view
$this->load->view('my_view',$data); //load the view
【讨论】:
感谢您的回答。所以这意味着如果我没有传递数据,那么我可以在其他视图中加载视图,例如简单的 html,对于特定于数据库的我应该使用控制器。 我花了两天时间,终于得到了答案。再次感谢您的帮助。以上是关于codeigniter,从不直接调用视图,有人可以解释一下的主要内容,如果未能解决你的问题,请参考以下文章
在 codeigniter PATH 中调用控制器模型和视图