0

私はyiiで働いています。情報とそれに関連する日付を格納するテーブルがあります。次の関数では、日付を入力して情報を検索しています。私はコントローラーに機能を持っています-

     public function actionGetHistoryContent()
      {
        $content1=new Dnycontenttitle();
        $content1->date="2013-01-01";
        $getcontentId=Dnycontenttitle::model()-   >indAllByAttributes(array("date"=>$content1->date));

        foreach ($getcontentId as $Id)
        {

         //echo $Id->contentTitleId;
         $getcontent=Dnycontent::model()->findAllByAttributes(array("contentTitleId"=>$Id->contentTitleId));
         foreach($getcontent as $content)
         {  
            echo "</br>".$content->content;
         }

      }  
     echo "{'Historys':    [".CJSON::encode(array("contentId"=>$Id>contentTitleId,"Intro"=>$content->content))."] }";
}

したがって、上記の関数は、日付が「2013-01-01」である情報のすべての行を取得しています。これらすべてのデータをjson形式でクライアント側に送信したい。しかし、上記のjsonは、関数によって最後に取得される1行のデータのみを送信しています。たとえば、上記の関数がテーブル as= から 2 行のデータを取得するとします。

contentId=1 intro="今日は日曜日" Date=2013-01-01 contentId=23 intro="世界の笑顔の日" Date=2013-01-01

しかし、jsonで送信すると、最後に取得したcontentId=23の情報しか送信されません。では、複数行のデータを json 形式で送信する方法について説明します。

4

1 に答える 1

0

foreach() 内で行う必要があります。そうしないと、最後の要素が取得されます..これを試してください。

public function actionGetHistoryContent()
  {
    $content1=new Dnycontenttitle();
    $content1->date="2013-01-01";
    $getcontentId=Dnycontenttitle::model()-   >indAllByAttributes(array("date"=>$content1->date));
    foreach ($getcontentId as $Id)
     {
     $getcontent=Dnycontent::model()->findAllByAttributes(array("contentTitleId"=>$Id->contentTitleId));
     foreach($getcontent as $content)
     {  
        echo "</br>".$content->content;
        echo "{'Historys':    [".CJSON::encode(array("contentId"=>$Id>contentTitleId,"Intro"=>$content->content))."] }";
     }
  }  

}

于 2013-01-05T06:23:19.117 に答える