我有一个Codeigniter视图,它会进行一些处理,并在我的控制器中创建一些我需要的变量。
如何从控制器访问视图中创建的变量? 甚至可以这样做吗?
我可以将变量从控制器传递给视图,
我可以将变量从视图传递回控制器吗?
只是为了让事情更清楚。我有一个主控制器,它可以获取多个视图并形成一个完整的页面。在这个完整的页面中,我只需要传递一些数据。这个数据再次,不要火焰或怪我这个,在视图中处理。现在我需要为每个由主控制器方法setPageMetaData
设置的页面设置元数据,标题关键字等,并且它接受一个键值对。对于某些页面,它很容易setPageMetaData
内部控制器,但在一个特定情况下,标题和关键字是由视图中的某些处理生成的。我需要控制器中的信息。我的问题是无论这个特殊情况如何,我可以将变量从View传递给我的控制器吗?它甚至可能吗?我本可以补充一下,“这是推荐吗?”赢得一些掌声。
答案 0 :(得分:4)
这样想:
尝试将代码移动到适当的层,而不是将其全部混合。您的视图层应该只接收来自控制器的数据而不处理它。
如果您只需要一些静态数据,请考虑将其移至config文件。如果要处理某些数据,请在模型或控制器层中执行此操作,读取结果,相应地设置一些变量,然后将它们发送到视图。
答案 1 :(得分:3)
您也可以使用URI段或Js,Ajax来提供帮助。如果您使用CRUD,它很简单,它会给控制器加载以在模型中执行代码。
答案 2 :(得分:1)
在Code Igniter中,如果你试图将某些东西从视图中传回控制器,那么你正在做一些可怕的,可怕的,可怕的错了。
唯一的情况是,如果您的视图本身正在进行一些处理。
在我之后重复;
我
这完全打破了使用Code Igniter等框架的目的。
view的目的是将已处理的数据输出为网页。
-
随意发布您的代码,我们可以告诉您哪里出错了。