我希望在indexSuccess.php
类别标题和该类别的元素中显示。这是我的两张桌子:
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 :(得分:0)
在获取数据时,你没有使用两个表之间的关系。像你一样查询需要从数据库所有类别和所有证书(不是所有类别的证书)。
如果您只想在页面中显示包含所有元素的一个类别,则应更改查询以仅提取一个类别(请参阅 - &gt; fetchOne())指定您需要的类别,然后在其中使用其ID第二个查询的子句。或者只是加入他们只使用一个查询。
如果你想在一个页面中显示所有类别及其元素,我会在关系SgpsCategories中添加一个foreignAlias,所以从SgpsCategories你可以拥有他所有的元素:
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 }
所以你的行动:
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; ?>