0

私はsymfony 1.0のプロジェクトに取り組んでいます。次のようにアクションファイルに結果セットを作成しました

$perform = new Criteria();
$perform->clearSelectColumns();
$perform->addSelectColumn(ProductionPeer::PREVIEW_DATE);
$perform->addSelectColumn(ProductionPeer::OPENED);
$perform->addSelectColumn(ProductionPeer::CLOSED);
$perform->addSelectColumn(ProductionPeer::PERFORMANCES);
$perform->addSelectColumn(VenuePeer::NAME);

$perform->addJoin(ProductionPeer::VENUE_ID, VenuePeer::ID, Criteria::LEFT_JOIN);
$perform->add(ProductionPeer::TITLE_ID,3);

$this->performRsCnt = ProductionPeer::doCount($perform);

if($this->performRsCnt > 0)
{
    $this->performRs = ProductionPeer::doSelectRS($perform);
    $this->performRs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
}

アクション自体で print_r($this->performRs) すると、目的の出力が得られます

問題は、成功ファイルに含まれる 1 つの pratial ファイルを作成したことと、部分ファイルに部分ファイルに含まれるコンポーネントがあることです。コンポーネントのインクルードコードの前にアクションオブジェクト、つまり$performRsを印刷すると、目的の出力が得られますが、インクルードコードの後に​​印刷すると、コンポーネントにある最後の結果セットで上書きされます

以下はコンポーネントのサンプルコードです

コンポーネント ファイル コード

class defaultComponents extends sfComponents
{

      public function executeMediaDetail()
      {
           $mediaHardeep = new Criteria();
           $mediaHardeep->addSelectColumn(PhotosPeer::PHOTO);
           $mediaHardeep->addSelectColumn(PhotosConcernsPeer::PHOTOS_ID);
           $mediaHardeep->addJoin(PhotosConcernsPeer::PHOTOS_ID, PhotosPeer::ID, Criteria::LEFT_JOIN);
           $mediaHardeep->add(PhotosConcernsPeer::REF_ID, $this->ref_id);
           $mediaHardeep->add(PhotosConcernsPeer::TYPE, $this->type);
           $imgRsCntHardeep = PhotosConcernsPeer::doCount($mediaHardeep);
        }
    }

コンポーネント インクルード コードを部分的に

<?php print_r($performRs);?> //desired output
   <!-- start media section -->
        <?php include_component('default', 'mediaDetail',array('ref_id' => $titleData['ID'], 'type' => 'title','abc123'=>$abcRs));?>
    <!-- end media section -->
   <?php print_r($performRs);?> //gives the output of $imgRsCntHardeep which is in component

コードを何度もチェックしましたが、変数の不一致、変数を部分またはコンポーネントに渡す、変数名を複数回使用するなどのエラーがコードに含まれていないことを確認しました。土曜日からこの問題を解決しているので、ここから解決策が見つかることを願っています

4

0 に答える 0