从模板调用操作的正确方法

时间:2014-06-28 04:03:27

标签: php symfony-1.4 doctrine-1.2

我正在处理一个旧项目,我需要添加模块。我想在模板中显示一些数据。 在我的模型中,我尝试了

public function getOverdues() {
    $q = Doctrine_Query::create()
    ->select('a.firstname,a.lastname')
    ->from('Applicants a')
    ->leftJoin('a.Loans l')
    ->where('l.is_completed=?','N')
    ->limit(10);
    echo "<h1>Sample Doctrine to SQL For Project</h1>";
    return $q->execute();
    echo "<h1>End of the Script </h1>";*/

}

在我的行动中:

public function executeOverdue(sfWebRequest $r)
{
$applicants = Doctrine_core::getTable('Applicants')->getOverdues();
//$this->setLayout(false);
}

和模板..

<table class="table table-bordered table-condensed table-striped">
<thead>
    <tr>
        <td>Firstname</td>
        <td>Lastname</td>
    </tr>
</head>
<tbody>
    <tr>
        <?php foreach($applicants as $app): ?>
        <th><?php echo $app->firstname ?></th>
        <th><?php echo $app->lastname ?></th>
        <?php endforeach; ?>
    </tr>
</tbody>

这将只显示包含firstname和lastname行的表,而不是显示值。 我可以尝试(print_r($ applicants-&gt; toArray());)进行测试并成功打印数组。 我的动作/模板中缺少什么?

1 个答案:

答案 0 :(得分:0)

知道了!我的行动中只做了一些修改

public function executeOverdue(sfWebRequest $r)
{
$this->applicants = Doctrine_core::getTable('Applicants')->getOverdues();
//$this->setLayout(false);
}

忘记使用&#39; $ this&#39;。