Yii: использование двух моделей в одной форме

У меня есть три модели

  1. книги
  2. категории
  3. Отображение категории

Я хочу хранить отношения книг и их категорий в Таблице отображения категорий. Получая подробную информацию о категориях, используя checkboxlist в YII в Form книг.

подобно

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,
));
}

Это не работает. Пожалуйста помоги.

0

Решение

Когда книга сохранена, вы хотите сохранить категории для нее в 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,
));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]