如何访问外键相关表字段

时间:2012-11-29 12:10:11

标签: yii foreign-key-relationship

我有两张桌子:

用户

  • 用户ID
  • 用户名
  • securityQuestionId

Securityquestion

  • securityQuestionId
  • securityQuestion
  • 用户ID

现在在控制器中我正在采取行动=

public function actionCreate(){

     if(isset($_POST['email']))
     {
            $record=User2::model()->find(array(
                'select'=>'userId, securityQuestionId, primaryEmail,password,userId',
                'condition'=>'primaryEmail=:email',
                'params'=>array(':email'=>$_POST['email']))
            );

            if($record===null)
            {
                echo "Email invalid";
            }
            else 
            {
                echo "email exists";
            }
       }
}

所以$ record-> securityQuestionId显示id。现在我想显示实际的securityQuestion。在user2模型中,我有关系

securityQuestion'=>array(self::BELONGS_TO, ' Securityquestion', 'securityQuestionId'),

那我怎样才能显示实际的securityQuestion。

1 个答案:

答案 0 :(得分:0)

你的桌子有点奇怪: 由于User具有securityQuestionId,我们可以认为User属于SecurityQuestion,但您在SecurityQuestion中也有userId,因此SecurityQuestion也属于User。

对我来说,你应该:

用户

id
username
id_question

<强> SecurityQuestion

id
question

在你的模特规则中:

用户

'securityQuestions'=>array(self::BELONGS_TO, 'SecurityQuestion', 'id_user'),

<强> SecurityQuestion

'user'=>array(self::HAS_MANY, 'User', 'id_user'),

现在要有相关的SecurityQuestion:

$model = User::model()->find(...);
//display the related question
$model->securityQuestion->question;