-1

我有两张桌子:

用户

  • 用户身份
  • 用户名
  • 安全问题 ID

安全问题

  • 安全问题 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。现在我想显示实际的安全问题。在 user2 模型中,我的关系为

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

那么我怎样才能显示实际的安全问题。

4

1 回答 1

0

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

对我来说,你应该有:

用户

id
username
id_question

安全问题

id
question

在您的模型规则中:

用户

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

安全问题

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

现在有相关的SecurityQuestion:

$model = User::model()->find(...);
//display the related question
$model->securityQuestion->question;
于 2012-11-29T14:05:29.413 回答