混凝土 5.8 快速入口块 - 按属性过滤结果



按照这里的开发人员文档,是否可以进一步按对象的属性过滤结果?

例如,假设您在码头中有多艘船,这些船具有相同的所有者,并且您只想在码头中找到该所有者的船只,是否有办法进一步过滤数据(即按属性 BoatOwner 过滤)。

在大量阅读了 Doctrine2 文档后,我可以理解这是可以做到的,但我无法弄清楚如何扩展 C5 代码或我可以调用什么方法来执行此操作。

<?php defined('C5_EXECUTE') or die(_("Access Denied.")); ?>
<?php
if (isset($entry) && is_object($entry)) {
$boats = $entry->getBoats();
?>
<table class="table">
    <thead>
    <tr>
        <th>Name</th>
        <th>Year</th>
        <th>Owner</th>
        <th>Classification</th>
    </tr>
    </thead>
<tbody>
<?php if (count($boats)) {
    foreach($boats as $boat) { ?>
        <tr>
            <td><?=$boat->getBoatName()?></td>
            <td><?=$boat->getBoatYear()?></td>
            <td><?=$boat->getBoatOwner()?></td>
            <td><?=$boat->getBoatClass()?></td>
        </tr>
    <?php } ?>
<?php } else { ?>
    <tr>
        <td colspan="4">No boats found.</td>
    </tr>
<?php } ?>
</tbody>
</table>
<?php } ?>

以上是 C5 文档中的代码。魔术"get"方法是否可以以某种方式扩展,或者是否有更简单的解决方案与$boats数组(我认为它是一个数组)一起使用以仅选择具有特定属性值的船?

答案是将 if 语句与 foreach 循环放在一起。

if (count($boats)) {
    foreach($boats as $boat) { 
if($boat->getBoatOwner() == "boat owner's name here") {
?>
<tr>
        <td><?=$boat->getBoatName()?></td>
        <td><?=$boat->getBoatYear()?></td>
        <td><?=$boat->getBoatOwner()?></td>
        <td><?=$boat->getBoatClass()?></td>
    </tr>
<?php;
            } else {
                ?>
    <?php;
            } 

        ?>

        <?php } ?>
    <?php } else { ?>
        <tr>
            <td colspan="4">No boats found.</td>
        </tr>
    <?php } ?>
    </tbody>
</table>
<?php } ?>

我想我会将船主的名字作为变量传递,可能来自页面属性,以便有任何用处。

相关内容

  • 没有找到相关文章