我遇到的情况是,我试图将视图表单中显示的组件输出作为下拉列表。我不能使用model来存储组件输出中的数据并在视图中显示它。因为这将导致巨大的数据存储并可能减慢应用程序处理速度。剩下的唯一选择是在视图中直接使用此组件输出。
现在,我很困惑,如果我应该在控制器和控制器中调用此输出我在视图中调用控制器方法类似于:http://www.yiiframework.com/forum/index.php/topic/63169-way-to-call-controller-method-in-view-yii2/
另一种方法是在前端使用JS并使用视图中显示的组件输出。不确定这是否也是一个好方法。 什么是正确的方法呢?
答案 0 :(得分:1)
您可以在视图中使用组件结果。
我正在向您提供一个从组件获取国家/地区代码的问题,并将其存储在模型中。
Ex 。组件中的功能。
public static function getDialCode()
{
return array(
"+91"=>"India (+91)",
"+62"=>"Indonesia (+62)",
"+98"=>"Iran (+98)",
"+39"=>"Italy (+39)",
);
}
DropDown List视图中使用的函数
<?= $form->field($model, 'country_code')->dropDownList(Yii::$app->mycomponent->getDialcode(),['prompt'=>'Select']) ?>
// I registered component as mycomponent