我在我的symfony應用程序中製作麪包屑菜單:我在執行{Action}中創建了一個鏈接列表,然後我在layout.php中使用了一個組件來顯示它,所以我正在尋找將操作數據傳遞給這個零件。我可以使用sfContext作爲註冊表,但也許有更好的方法?PHP Symfony 1.4 - 將數據從動作傳遞到組件的最佳方式?
回答
通常你會在動作的視圖中的一個插槽如此:
slot('breadcrumb', $links);
,然後在layout.php中:
<?php if(has_slot('breadcrumb')): ?>
<?php include_component('modulename', 'breadcrumb', get_slot('breadcrumb')); ?>
<?php endif; ?>
本質slot
使用了一個特殊的命名空間的背景下(或者可能是它的響應...... sfParameterHolder某處的某個實例,嘿嘿)作爲插槽名稱/值的註冊表 - 所以您所考慮的解決方案已經實現:-)
感謝您的回答,但我的問題是,無論如何,即使鏈接未在動作中定義,也必須包含麪包屑組件,然後它(組件)會生成鏈接。我不想將麪包屑鏈接傳遞給動作的模板,因爲我認爲它比使用註冊表更不優雅。 – 2012-02-29 12:56:25
另一個解決方案是將麪包屑生成(鏈接的確定和組裝)從組件移到單獨的類。然後你可以將這個類注入'context.load_factories'的上下文中,並用當前的'sfWebRequest'初始化它,我認爲這足以解決你的麪包屑問題。如果沒有,你也可以將這個類掛在'controller.change_action'事件中,以便將解析後的動作放入其中。不知道你的麪包屑是如何編譯的,很難說。然後你只需從組件中獲取這個breadcrumb類。 – prodigitalson 2012-02-29 13:03:02
好的,非常感謝! – 2012-02-29 14:06:43
在你的行動:
$this->links = array('link1', 'link2', 'linkn');
在模板:
<?php include_component('modulename', 'breadcrumb', array('links' => $links); ?>
- 1. 將數據從片段傳遞到DialogFragment的最佳方式
- 2. 從JavaScript到C#傳遞數組的最佳方式?
- 3. 插槽沒有從動作傳遞到Symfony 1.4中的佈局
- 4. 將參數從UI傳遞到後端的最佳方式
- 5. 最佳方式遞歸PHP數組
- 6. 如何將數據傳遞到Symfony 1.4中的全局部分
- 7. 從PHP傳遞數組到MySQL存儲過程的最佳方式是什麼?
- 8. 什麼是將數組從jade傳遞到節點js的最佳方式
- 9. 將數據從Arduino傳輸到服務器的最佳方式
- 10. 將數據從視圖傳輸到javascript的最佳方式
- 11. 將一組對象從一個動作傳遞到另一個動作的最佳方式是什麼?
- 12. 將變量從python實時傳遞到C的最佳方式
- 13. 將複雜數據傳遞到ASP.Net控件的最佳方式是什麼?
- 14. django將數據傳遞給javascript的最佳方式
- 15. 將jQuery數組傳遞到C#頁面的最佳方法
- 16. Symfony 1.4將變量從行爲傳遞到查看
- 17. 動作並將變量傳遞給symfony中的所有動作1.4
- 18. 將數據傳遞給新ViewModel的最佳方法啓動時
- 19. 將數組傳遞給Symfony中的setFilter()
- 20. 將單個數據字符串從操作傳遞到組件的最佳方法React/Redux/ES6
- 21. 將大數據傳遞到C#函數的最佳方式是什麼?
- 22. waht是將數組從jquery ajax調用傳遞給servlet的最佳方式?
- 23. 將數據從Phoenix傳遞到Javascript的最佳實踐
- 24. 將PHP數組數據保存到mysql表的最佳方法
- 25. 在vue.js中的組件之間傳遞數據的最佳方式是什麼?
- 26. 將可變數量的參數傳遞給php函數的最佳方式
- 27. 將文件從Xyboard傳輸到Ubuntu的最佳方式
- 28. 將同一數據傳遞給兩個React組件的最佳方法?
- 29. iPhone:將數據傳遞到服務器和從服務器傳遞數據的最佳方法
- 30. 驗證作爲道具傳遞的組件的最佳方法
好像使用閃光燈的變量在文檔中常見的做到這一點。我同意這是駭人聽聞的,它是我經常碰到的1.4中最大的黑眼睛之一,其形式是從一個動作轉向另一個動作。 – yitznewton 2012-02-29 15:11:13