我有一個元素用於從我的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. 代碼點火器:從控制器訪問數組元素
- 4. 在另一個控制器中訪問控制器的數據
- 5. Ember數據和元數據 - 從控制器訪問
- 6. 無法訪問元素父控制器
- 7. 訪問HTML元素的數據並傳送到控制器PHP
- 8. 訪問「數據」的下一個元素
- 9. 從另一個控制器訪問yii擴展控制器
- 10. Ember.js從另一個控制器訪問控制器模型
- 11. 從另一個控制器訪問控制器中的變量
- 12. 一個GWT元素中訪問控件
- 13. 如何訪問元素屬性從AngularJS控制器
- 14. 在jmeter中從一個控制器訪問陣列到另一個控制器
- 15. grails控制器:訪問具有元素列表的參數
- 16. 從選定的元素訪問數據?
- 17. 訪問從控制器
- 18. 從控制器訪問stylesheet_link_tag
- 19. 訪問從控制器
- 20. 訪問從「根」控制器
- 21. 如何從ApiController訪問數據控制器/數據模型?
- 22. 訪問一個SELECT元素和一個數組元素
- 23. 訪問另一個控制器的數據
- 24. 訪問常數從另一個視圖控制器
- 25. Xcode - 從多個視圖控制器訪問一個視圖控制器
- 26. ZF2 BjyAuthorize從數據庫訪問控制?
- 27. 從另一個訪問一個Web API控制器
- 28. 通過控制器訪問父級控制器的數據
- 29. 無法訪問容器視圖的tableview控制器元素
- 30. Angular - 從另一個控制器更新控制器數據
對不起,也許我應該澄清。我正在使用<?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