-1

私は次のように2つのテーブルを持っています:

ユーザー

  • ユーザーID
  • ユーザー名
  • securityQuestionId

秘密の質問

  • securityQuestionId
  • 秘密の質問
  • ユーザー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'),

では、実際のセキュリティの質問を表示するにはどうすればよいですか。

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 に答える