簡體   English   中英

yii小部件呈現另一個控制器的局部視圖

[英]yii widget render partial view of another controller

我需要在yii驅動的項目中為不同模塊創建通用對話框窗口小部件,其表單將自動序列化並傳遞給控制器​​操作以進行添加/更新操作。

如果我在小部件的重載run()或init()方法中調用渲染局部方法,並以html形式將其傳遞給他自定義視圖路徑,這是否是一種好習慣(相應地,該對話框將在對白-btn click操作之后顯示在模式對話框窗口中) )?

我的小部件路徑:

/protected/components/widgets/DialogFormWidget.php

我的表單路徑:

/protected/modules/module/controller/views/forms/submittable_html_form.php

 $this->renderPartial('application.modules.controllers.views.forms.submittable_html_form');

更新:

在上面的代碼中, $this指的是控制器,如果要從小部件內部使用控制器renderPartial,則必須像$this->controller->renderPartial (

即使您可以使用視圖文件的路徑來從其他控制器($ this-> renderPartial('application.views.controller.view',[])或您的視圖在系統上的任何位置)訪問該文件,不是很好的解決方案。 更好的解決方案是創建Yii小部件,這樣您就可以輕松地從任何地方調用它,因為它的控制器是獨立的。 您也將獲得很多好處,因為使用Yii小部件,您可以選擇發送一些小部件配置參數,這些參數可用於自定義小部件,甚至基於該參數加載不同的視圖/樣式。 同樣,您將擁有自定義功能的好地方,這些功能可以幫助向視圖等添加一些業務邏輯。 您可以在這里找到一些起點( http://www.yiiframework.com/doc/guide/1.1/en/basics.view

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM