2011-09-07 3 views
0

indexSuccess.php 카테고리 제목과 해당 카테고리의 요소를 표시하고 싶습니다. 이 내 두 개의 테이블이 있습니다카테고리 및 해당 카테고리의 요소 만 가져 오기 - symfony

SgpsCategories: 
    columns: 
    description: { type: string(255), notnull: true } 

SgpsCertificats: 
    actAs: { Timestampable: ~ } 
    columns: 
    categories_id: { type: integer, notnull: true } 
    titre: { type: string(255), notnull: true } 
    type: { type: string(255), notnull: true } 
    taille: { type: string(50), notnull: true } 
    chemin: { type: string(255), notnull: true } 
    relations: 
    SgpsCategories: { onDelete: CASCADE, local: categories_id, foreign: id } 

지금까지 나는 행동에 이런 짓을 :

public function executeIndex(sfWebRequest $request) 
    { 


    $this->categories = Doctrine_core::getTable('SgpsCategories') 
     ->createQuery('b') 
     ->execute(); 

    $this->sgps_certificatss = Doctrine_Core::getTable('SgpsCertificats') 
     ->createQuery('a') 
     ->execute(); 
    } 

와 나는 indexSuccess.php에 이런 짓을 :

<?php foreach ($categories as $categorie): ?> 

    <div id="titulo-certificado"><?php echo $categorie->getDescription(); ?></div> 

    <?php foreach ($sgps_certificatss as $sgps_certificats): ?> 

     <?php echo $sgps_certificats->getTitre()."<br>";?> 

    <?php endforeach; ?> 
<?php endforeach; ?> 

내가 뭘 여기서 뭐라구? 감사합니다.

답변

0

데이터를 가져올 때 두 테이블 간의 관계를 사용하지 않습니다. 그리고 당신과 같은 쿼리는 데이터베이스 모두 카테고리와 모두 Certificats (카테고리의 모든 Certificat)에서 가져옵니다.

모든 요소가 포함 된 페이지에 하나의 카테고리 만 표시하려면 원하는 카테고리를 지정하여 하나의 카테고리 (-> fetchOne() 참조)를 가져 오도록 쿼리를 변경하고 그 위치에서 해당 ID를 사용해야합니다 두 번째 쿼리에 대한 절입니다. 아니면 단지 하나의 쿼리를 사용하도록 가입하십시오.

SgpsCategories: 
    columns: 
    description: { type: string(255), notnull: true } 

SgpsCertificats: 
    actAs: { Timestampable: ~ } 
    columns: 
    categories_id: { type: integer, notnull: true } 
    titre: { type: string(255), notnull: true } 
    type: { type: string(255), notnull: true } 
    taille: { type: string(50), notnull: true } 
    chemin: { type: string(255), notnull: true } 
    relations: 
    SgpsCategories: { onDelete: CASCADE, local: categories_id, foreign: id, foreignAlias: Certificats } 

그래서 액션 :

당신은 당신이 자신의 모든 요소를 ​​가질 수 SgpsCategories에서 그래서 나는 관계 SgpsCategories에 foreignAlias를 추가 할 것 한 페이지에서 모든 범주, 그들의 요소를 표시 할 경우

:

public function executeIndex(sfWebRequest $request) 
{ 
    $this->categories = Doctrine_core::getTable('SgpsCategories') 
     ->createQuery('b') 
     ->execute(); 
} 

그리고 템플릿 :

<?php foreach ($categories as $categorie): ?> 

    <div id="titulo-certificado"><?php echo $categorie->getDescription(); ?></div> 

    <?php foreach ($categorie->getCertificats() as $sgps_certificats): ?> 

     <?php echo $sgps_certificats->getTitre()."<br>";?> 

    <?php endforeach; ?> 
<?php endforeach; ?>