Es gibt zwei Felder in der Datenbank-VOD-Tabelle:
vod_play:
qq$$$iqiyi$$$sohu$$$youku$$$mgtv
vod_url:
1$http://v.qq.com/x/cover/llws99784lrtpz7/g003189nkf3.html 2$http://v.qq.com/x/cover/llws99784lrtpz7/f0031cijuxc.html $$$http://www.iqiyi.com/v_19rse7ldt0.html 2$http://www.iqiyi.com/v_19rse7mbz0.html $$$http://tv.sohu.com/v/MjAxOTA2MjUvbjYwMDczMDI0MS5zaHRtbA==.html 2$http://tv.sohu.com/v/MjAxOTA2MjUvbjYwMDczMDI0My5zaHRtbA==.html $$$http://v.youku.com/v_show/id_XNDI0Mjg3NDcyOA==.html 2$http://v.youku.com/v_show/id_XNDI0Mjg3NDczMg==.html $$$http://www.mgtv.com/b/330256/5878154.html 2$http://www.mgtv.com/b/330256/5878408.html
Ich möchte sie in Gruppen im anzeigen Form, qq entspricht Die Wiedergabeadresse von qq und iqiyi entsprechen der Wiedergabeadresse von iqiyi. . . :
Die derzeit implementierten Methoden sind wie folgt:
1. Erstellen Sie eine neue Methode in der Modellklasse, um die Zeichenfolge aufzuteilen und wieder in ein Array zusammenzusetzen;
public function getPlaylist(){ $datas['vod_play'] = explode('$$$', $this->vod_play); $datas['url'] = explode('$$$', $this->vod_url); $playlist=[]; if (is_array($datas)) { foreach ($datas as $key => $value) { foreach ($value as $k => $v) { $playlist[$k][$key] = $datas[$key][$k]; } } return $playlist; } }
2. Übergeben Sie im Controller das Array an die Ansicht:
public function actionUpdate($id) { $model = $this->findModel($id); $playlists= $model->getPlaylist(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->vod_id]); } return $this->render('update', [ 'model' => $model, 'playlists'=>$playlists, ]); }
Drei, schleifen Sie das Array in der Ansicht:
<?php foreach ($playlists as $playlist):?> <div class="form-group field-player"> <label class="control-label" for="player">播放器</label> <input type="text" id="player" class="form-control" name="player[]" value='<?php echo $playlist['vod_play'];?>' maxlength="30" aria-invalid="false"> <div class="help-block"></div> </div> <div class="form-group field-url"> <label class="control-label" for="url">播放地址</label> <textarea id="ffvod-vod_content" class="form-control" name="url[]" rows="12" aria-invalid="false"><?php echo $playlist['url']?></textarea> <div class="help-block"></div> </div> <?php endforeach;?>
like Dies kann nicht mit ActiveForm verarbeitet werden. Ich habe auch eine Reihe gemischter HTML- und PHP-Codes geschrieben.
Kann ich ActiveForm in der Ansicht implementieren?
Vielen Dank!