![](/img/trans.png)
[英]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.