0

私はyiiフレームワークでプロジェクトを作成しています。私はテーブルを持っています-QbquestionQbquestionOption-
questionId -optionId -question -questionId -userId -option -isPublished -isAnswer

QbquestionOptionコントローラーで、Qbquestionテーブルのフィールドにアクセスしたいと思います。私は質問を次のように書いていました-

 $Question=Qbquestion::model()->findAllByAttributes(array("questionId"=>$number));

ここで、$numberは乱数です。フィールドをas=$ Question-> isPublishedとして使用している場合、「非オブジェクトのプロパティにアクセスしようとしています」というエラーが表示されます。ステートメントvar_dump($ Question)は、Qbquestionテーブルのすべてのレコードとすべての値を示しています。では、どうすればレコードにアクセスできますか?私を助けてください

4

3 に答える 3

1

findAllByAttributesオブジェクトの配列を返します。

質問が1つだけ必要な場合は、findByAttributes代わりに使用してください。そうすれば、希望どおりに機能するはずです。

于 2012-12-15T05:09:43.117 に答える
1

私はあなたの関係をすべて知らないので試してみてください。試してみてください。うまくいかない場合は、他の回答を投稿します。また、どのテーブルが公開フィールドであるかを教えてください。タイトルに記載されているように他のテーブルにある場合は、echo $ qRec->OtherTableRelationArrayKey->isPublishedとして変更する必要があります。

foreach($Question AS $qRec)
{
      echo $qRec->isPublished;
      echo "<br />";   
}
于 2012-12-15T05:10:44.277 に答える
1

$Questionその上でモデル関数を呼び出すことができないモデルの配列です。

あなたができることは:

 $questions = Qbquestion::model()->findAllByAttributes(array("questionId"=>$number));
 foreach($questions as $question)
    $question->isPublished()

またはfindByAttribute、単一の結果を取得するために使用できます。

于 2012-12-15T05:10:44.897 に答える