[英]How do i get A dropwdown to populate using Yii2 and Kartiks depDrop widget?
[英]How do I populate a join table using Yii2?
因此,我遵循數據庫設置,在創建帶有標記下拉列表的博客文章時創建了一個表單,但是在提交時,我希望它填充聯接表。
僅當我手動設置標簽ID時,以下內容才有效。
if ($model->load(Yii::$app->request->post())) {
$model->save(false);
$tags->blog_id = $model->id;
//$tags->tag_id = 1;
$tags->save(false);
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
'tags' => $brands,
]);
}
表格欄位設定
<?= Html::activeDropDownList($tags, 'tag_id',
ArrayHelper::map(tags::find()->all(), 'id', 'title')) ?>
下表/數據庫結構:
博客-id(PK)-標題-內容
Blog_category -id(PK)-blog_id(FK)-tag_id(FK)
標簽-id -title
更新:
不知道下面是否是最好的方法,歡迎任何改進。
foreach ($_POST['Tags']['tag_id'] as $tag){
$tags = new Tags();
$tags->blog_id = $model->id;
$tags->tag_id = $tag;
$tags->save();
}
您是否嘗試過在分配中使用標簽
if ($model->load(Yii::$app->request->post())) {
$modelTags = load(Yii::$app->request->post('tags')));
$model->save(false);
$tags->blog_id = $model->id;
$tags->tag_id = $modelTags->tag_id;
$tags->save(false);
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
'tags' => $brands,
]);
}
PS在出現驗證問題的情況下,-> save(false)的使用應限於測試階段。 如果不刪除此標志,則數據庫中的數據集可能不一致。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.