簡體   English   中英

Yii:以單一形式使用兩個模型

[英]Yii : Using Two models in single Form

我有三個模型

  1. 圖書
  2. 分類
  3. 類別對應

我想將書籍及其類別的關系存儲在類別映射表中。 通過使用圖書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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM