如何在Yii中处理具有一对多关系的创建表单?

时间:2015-12-05 23:13:47

标签: php model-view-controller yii

我使用Yii 1.1。我希望创建一个创建表单的创建表单。 模块属于一个用户用户有许多模块

tbl_user
----------
id
firstName
lastName
email
password
role

tbl_user_module
----------
id
name
academicYear
....
userId [FOREIGN KEY]

模型中的关系设置如下:

Module.php

public function relations()
{
    return array(
        'user' => array(self::BELONGS_TO, 'User', 'userId'),
    );
}

user.php的

public function relations()
{
    return array(
        'module' => array(self::HAS_MANY, 'Module', 'userId'),
    );
}

用户使用from来创建属于他的模块(登录用户)。在控制器中,我需要将userId外键指定为登录用户。

public function actionCreate()
    {
        $module = new Module();

        // collect user input data
        if(isset($_POST['Module']))
        {       
            $module->attributes=$_POST['Module'];
            $module->userId = Yii::app()->user->id; //assigned userID as logged in user

            if($module->validate())
            {               
                if($module->save())
                {
                    $this->redirect(array('home/index'));
                }
            }
        }

        //render
        $this->render('create',array('model'=>$module));
    }

表单未保存并引发错误:

Property "Module.$userId" is not defined.

显然,我做得不对。 如何在表单中正确保存一对多关系?

1 个答案:

答案 0 :(得分:0)

解决了,我在Module.php中输了一个拼写错误!