私は3つのモデルUser、Job、UserJobを持っています。モデルUserとJobにはn:mの関係があります。ユーザーフォームでは、新しいジョブを動的に追加する必要があります。私は、現在のユーザーに関連した仕事を得るモデルのユーザーにYii2:関連するモデルの動的DateControlフィールドをフォームに追加する
:ビュー/ユーザー/ _form.phpで
public function getUserJobs() {
return UserJob::find()
->where(['user_id' => $this->id])
->orderBy('start DESC')
->all();
}
を次のように既存ジョブは、フォームに追加されます。
if (isset($userJobs)) {
$i = 0;
foreach ($userJobs as $job) {
$i++;
...
echo $form->field($job, '['.$i.']start')->widget(DateControl::className(), [
'type' => kartik\datecontrol\DateControl::FORMAT_DATE,
'saveOptions' => [
'name' => 'job_start[]',
],
])->label(false);
...
私は新しいジョブをjQueryで追加します(examplesと同様)。ほとんどのフィールドでは完全に動作します。しかし、フィールドの開始には、DateControl拡張子を使用する問題があります。拡張機能は独自のjQueryスクリプトを生成します。このスクリプトを操作しなければ、開始フィールドは正しく機能しません。
新しいDateControlフィールドをフォームに動的に追加する方法はありますか?