我有一个元素用于从我的layouts/default.ctp文件调用我的侧栏导航,我需要从我的Photos控件中访问一些关于类别的数据。我会如何去做这件事?从一个元素访问控制器数据
1
A
回答
1
您只需把您的layous/default.thtml中作为一个正常的模板,并把
<?php echo $this->element('your element'); ?>
在你需要它。
b.t.w,使用方法:
$data = $this->requestAction('controller/action');
访问数据
-1
为什么你不只是做标准的蛋糕约定呢?
在控制器中,
$这个 - >设置( '类',$这个 - > Photos->找到(...));
2
请注意requestAction,除非您有效地使用缓存,否则它会真的减慢应用程序的速度,因为每次调用它时都会启动一个全新的请求周期。
Travis Leleu的回答将是标准的做事方式。但是,如果您必须将数据(用于可移植性或任何原因)导入到元素中,那么requestAction不是要走的路。
由于您没有执行必须在控制器中的任何业务逻辑,我强烈建议您将模型类作为单例导入并实例化到元素中。你可以使用ClassRegistry :: init();
$Photo = ClassRegistry::init('Photo');
$Photo->find('all');
如果你需要做数据的任何额外的处理,你应该做的是,在模式本身或者使用蛋糕一个afterFind回调或在你的照片模型制作一个自定义的方法:
class Photo extends AppModel {
function customFind() {
$photos = $this->find('all');
foreach ($photos as $photo) {
//processing code here...
}
}
}
然后调用它在你的元素:
$Photo = ClassRegistry::init('Photo');
$Photo->customFind();
基本上我试图让跨这里是requestAction是适当的唯一情况是,你需要做的事情一样redirec或使用组件。
如果您只是检索和/或操作数据,那么它属于模型。
0
您可以发送数据到您的元素。例如在你的default.ctp中:
<?php echo $this->element('side_nav', $your_data); ?>
并且在你的side_nav.ctp中你可以处理那些数据。
相关问题
- 1. JavaFX。从另一个控制器访问一个控制器数据
- 2. 从一个控制器访问数据到另一个
- 3. Ember数据和元数据 - 从控制器访问
- 4. 无法访问元素父控制器
- 5. 访问HTML元素的数据并传送到控制器PHP
- 6. 访问“数据”的下一个元素
- 7. Ember.js从另一个控制器访问控制器模型
- 8. 从另一个控制器访问控制器中的变量
- 9. 如何访问元素属性从AngularJS控制器
- 10. 在jmeter中从一个控制器访问阵列到另一个控制器
- 11. 访问从控制器
- 12. 从控制器访问stylesheet_link_tag
- 13. 访问从控制器
- 14. 如何从ApiController访问数据控制器/数据模型?
- 15. 访问另一个控制器的数据
- 16. 访问常数从另一个视图控制器
- 17. Xcode - 从多个视图控制器访问一个视图控制器
- 18. 从控制器传递数据到另一个控制器
- 19. 无法访问容器视图的tableview控制器元素
- 20. 访问控制从另一个线程
- 21. 访问Ember控制器属性在同一个控制器内
- 22. 访问一个数组元素,Objectice C
- 23. iPhone:如何从另一个控制器类访问View Controller中的数据?
- 24. 从解析函数访问数据而不关闭控制器
- 25. Ember从另一个控制器访问阵列控制器的内容
- 26. Cakephp loadmodel无法从一个控制器访问多个模型
- 27. 传递JSON数据从一个控制器到另一个控制器angularJS
- 28. 坚持从一个控制器到另一个控制器的数据
- 29. SAPUI5,访问控制器中的视图元素
- 30. 获取控制器中无法访问的元素的ID
对不起,也许我应该澄清。我正在使用<?php echo $ this-> element('side_nav'); ?>在我的layouts/default.ctp中我需要获取该元素,在'elements/side_nav.ctp'中访问从Photos控制器检索的数据。 – trobrock 2010-03-16 02:55:37
@ trobrock,你有没有试过使用: “$ data = $ this-> requestAction('photos/someaction');”在元素中获取数据? – Young 2010-03-16 03:08:04
我没有,我会尝试。对不起,我错误地阅读了你的答案 – trobrock 2010-03-16 03:34:04