Yii2使用不同ID呈现部分形式

Yii2使用不同ID呈现部分形式,yii2,Yii2,在Yii2应用程序中,对于每个渲染中的相同字段,是否可以使用不同的id在屏幕上连续多次渲染部分a\u表单 为什么我需要这个?我在屏幕上动态生成了选项卡。当用户单击user/edit/5时,我不会重定向,只会在屏幕上打开一个新选项卡,其中包含要编辑用户的表单。当用户单击user/edit/16时,我会生成另一个具有相同表单但内部数据不同的选项卡,以此类推。在我到达一个像date\u of_birth这样的字段之前,这一切都是有效的,我正试图将日期选择器添加到该字段中。选项卡使其具有多个id为use

在Yii2应用程序中,对于每个渲染中的相同字段,是否可以使用不同的
id
在屏幕上连续多次渲染部分
a
\u表单


为什么我需要这个?我在屏幕上动态生成了选项卡。当用户单击
user/edit/5
时,我不会重定向,只会在屏幕上打开一个新选项卡,其中包含要编辑用户的表单。当用户单击
user/edit/16
时,我会生成另一个具有相同表单但内部数据不同的选项卡,以此类推。在我到达一个像
date\u of_birth
这样的字段之前,这一切都是有效的,我正试图将
日期选择器添加到该字段中。选项卡使其具有多个id为
user-date\u of\u birth
的字段,因此
DatePicker
仅适用于其中的第一个字段,而不适用于其余字段。这就是为什么我在寻找使用
renderPartial
生成相同表单的提示,但每次使用不同的
id

尝试使用render而不是renderPartial,并在第二个参数中传递动态表单id

return $this->render('_form', [
   'model' => $model,
   'formids' => 'user-'.$id
]);
在您的_form.php中

<?php $form = ActiveForm::begin([
    'id' => $formids
]); ?>


请参阅此扩展。它允许您动态渲染表单,但有其局限性-例如,如果您渲染的表单包含Select2字段或任何其他窗口小部件字段,则无法使用它添加您尝试的内容。与DatePickern特别相关不确定这有多重要,但我尝试使用URL作为字段前缀手动替换每一代的id。如果您移除或替换
/
标志,因为它们会破坏ID字段(如果存在),但是,由于控制器一直在寻找
用户出生日期
以添加错误消息和/或成功/错误类,因此您失去了对该字段进行自动验证的所有好处…还有一点需要提及-手动更改ID对于一个字段来说是一件事,但是如果您必须手动更改所有字段的ID,则(考虑使用完全不同的日期字段组成的表单,所有字段都连接到日期选择器),这将是相当麻烦的。这就是为什么我正在寻找一种聪明的方法,在生成/呈现整个表单时只执行一次。我不清楚。您是否对datepicker或validation不工作或renderPartial不工作有问题?问题是不同的datepicker具有相同的
id
,因为它们都是从他在同一页上使用
renderPartial
(有效)创建了相同的表单。只有第一个呈现的日期选择器有效,其余的则无效。