yii FW在关系表中插入数据的解决方案

时间:2013-06-27 08:24:43

标签: yii relation

我想用YiiFramework做一个项目。 在这个项目中我有1个表有很多关系 我想创建一个在主表和所有关系中插入数据的表单 例如 : 我想要一个添加学生信息的表单 我有2张桌子 第一名:id name family 和 第二名:id student_id字段 我想在表1中添加数据,然后在表2中添加数据 所有这些工作都以一种形式进行 你对此有什么解决方案吗?

我的真实情况:

'homehouse' => array(self::HAS_ONE, 'Homehouse', 'HouseId'),
        'houseType' => array(self::BELONGS_TO, 'Parametervalues', 'HouseTypeId'),
        'owner' => array(self::BELONGS_TO, 'Person', 'OwnerId'),
        'region' => array(self::BELONGS_TO, 'Region', 'RegionId'),
        'housemultimedias' => array(self::HAS_MANY, 'Housemultimedia', 'HouseId'),
        'housestages' => array(self::HAS_MANY, 'Housestage', 'HouseId'),
        'tradehouse' => array(self::HAS_ONE, 'Tradehouse', 'HouseId'),

1 个答案:

答案 0 :(得分:1)

你必须对每个模型进行操作,所以,假设你有两个模型(学生和工作),你用POST方法从表单发送数据。

他们,在你的控制器中,你首先保存主要数据,然后保存关系,例如:( ps。这只是一个假设的例子

<强>控制器

public function actionSave(){
    if(isset($_POST['Student'])) {

        $Student                  = new Student();
        $Student->Job             = new Job();
        $Student->attributes      = $_POST['Student'];
        $Student->Job->attributes = $_POST['Job'];

        if($Student->save()){         
             $Student->Job->student_id = $Student->id;
             $Student->Job->save();
        }    
    }
}

有了这个想法,您可以将数据保存在您建模的许多关系中。

参考:How to save related objects?