将一个控制器加载到 cakephp 中的另一个控制器中
我正在开发一个 Web 应用程序,使用多个页面,每个页面都有自己的控制器。
现在的问题是,控制器中有一些为一个页面创建的变量,而其他页面(使用不同的控制器)需要这些变量。
因此,我需要将一个控制器加载到另一个控制器中。
我通过添加来做到这一点 应用程序::导入('控制器', '部分');
$sections=新的sectionsController; $sections->constructClasses();
到控制器,但这似乎不起作用..
也许你们有一些想法?
提前致谢!
im developing a web application, using multiple pages, each with their own controller.
The problem now is that there are some variables in a controller, created for one page, that are required for an other page ( with a different controller).
Therefor i need to load one controller into the other one.
I did this by adding
App::import('Controller', 'sections');
$sections= new sectionsController;
$sections->constructClasses();
to the controller, but this doens't seem to work..
Maybe u guys have some ideas?
Thnx in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为您对 MVC 存在一些误解架构模式。如果你的枪需要一些子弹,只需获取子弹本身即可,不需要再获取另一把枪。所以我希望你明白加载控制器确实是一个坏主意。
另外,如果您希望所有控制器都可以访问一些变量,如 Gaurav Sharma
提到,你可以使用
Configure::write()
将数据存储在应用程序的配置app/config/core.php
.eg 中,然后你可以得到
$someval
通过在任何控制器中的Configure::read('somekey')
实现。I think there're some misunderstandings in your mind about MVC architectural pattern.If you need some bullet for your gun,just get the bullet itself,and it's not neccessary to get another gun with it.So I hope you understand loading controller is really a bad idea.
Also if you want some variables accessable by all controllers,as Gaurav Sharma
mentioned ,you can use
Configure::write()
to store data in the application’s configurationapp/config/core.php
.e.gThen you can get
$someval
byConfigure::read('somekey')
in any controller.您可以使用以下任一方法来访问 cakePHP 应用程序中任意位置的变量。
1.) 使用 配置类 或 < br>
2.) 对这些变量使用会话
You can use any one of the methods below to access a variable anywhere in the cakePHP application.
1.) use the configuration class OR
2.) use session for those variables
今天早上我一直在做这件事。我实际上是从数据库获取控制器名称,但我已将其更改为使用变量。
老实说,我没有费心去弄清楚“pass”的用途(我假设是变量),但如果没有它,它会发出警告。
您还需要在
$action
中显式调用$this->render
。I've been working on this this morning. I actually get the controller name from a database, but I've changed it to use variables instead.
I honestly didn't bother figuring out what 'pass' is for (I assume variables), but it throws a warning without it.
You will also need to explicitly call
$this->render
in your$action
.