具有两个输入的Yii小部件。如何为每个输入指定周围的HTML?

具有两个输入的Yii小部件。如何为每个输入指定周围的HTML?,yii,yii-components,yii-events,Yii,Yii Components,Yii Events,如果小部件只生成一个输入字段,则定制视图非常简单: <div style="font-size: 14px; line-height: 17px;">Страна</div> <div class="row"> <label> This is something: <? $this->widget(); ?></label> </div> 但是它很难看。还有其他方法吗?在我看来,应该只有一个小部件生成一个

如果小部件只生成一个输入字段,则定制视图非常简单:

<div style="font-size: 14px; line-height: 17px;">Страна</div>
<div class="row">
<label> This is something: <? $this->widget(); ?></label>
</div>

但是它很难看。还有其他方法吗?

在我看来,应该只有一个小部件生成一个文本字段,您可以创建另一个小部件(或在视图中)并调用它两次。这些字段是相关的(国家/地区的下拉列表和城市的jquery自动完成组合框)啊,好的,我不理解您的问题。如果您不想重复代码,可以在第三个方法中呈现这两个字段,该方法打印html代码,然后在run方法中调用它一次。但是可以在小部件(选项)中传递html代码吗?不管怎样,你给了我一个想法来
1.
passcallback
$render=function(){echo..}
在选项中,或
2.
在选项中传递php代码,例如
$render=“{$header}”
,然后从run()执行此代码将html代码作为选项传递看起来不太好,可能是一些标志或内容信息。
function widget.run()
{
    echo $html_pre1;
    echo CHtml::activeTextField(...);
    echo $html_post1;
    echo $html_pre2;
    echo CHtml::activeTextField(...);
    echo $html_post2;
...
}