我有一個元素用於從我的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