[英]Yii : Using Two models in single Form
我有三個模型
我想將書籍及其類別的關系存儲在類別映射表中。 通過使用圖書Form
的yii中的checkboxlist
來獲取類別的詳細信息。
喜歡
Book Name: ______________
Book Author: ______________
Book Published: _____________
Categories---------------------------------------------
[] Educational [] Academic [] Spiritual []Self Help
-------------------------------------------------------
(Save)
例如:在類別映射表中
Book ID | Category ID
1 | 2
1 | 5
1 | 7
2 | 2
在controller/Book.php
public function actionCreate()
{
$model=new Book;
if(isset($_POST['Book']))
{
$bid=$model->book_id;
if(isset($_POST['Category'])){
foreach ($_POST['Category'] as $category) {
$category = new Category();
$category->attributes=$_POST['Category'];
$category->map_book_id=$bid;
$category[] = $category;
}
if(!empty($category)){
$category->save();
}
}
if($model->save()){
$this->redirect(array('view','id'=>$model->book_id));
}
}
$this->render('create',array(
'model'=>$model,
'category'=>$category,
));
}
它不起作用。 請幫忙。
保存書籍后,您希望將其類別保存在Category Mapping
表中。
可以說它的模型是CategoryMapping
。
嘗試-
//After saving the Book, you have the Book Id in `$bid` variable.
$category_arr = array();
if(isset($_POST['Category'])){
foreach ($_POST['Category'] as $category) {
$category_map = new CategoryMapping();
$category_map->category_id = $category;
$category_map->book_id = $bid;
//..... some other attributes to set
if($category_map->save()) {
$category_arr[] = $category;
} else {
print_r($category_map->getErrors()); //Just for debugging
}
}
}
然后 -
$this->render('create',array(
'model'=>$model,
'category'=>$category_arr,
));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.