0

遵循此处的开发人员文档,是否可以进一步按对象的属性过滤结果?

例如,假设您在一个拥有相同所有者的码头中有多艘船,并且您只想在码头中找到该所有者的船,有没有一种方法可以进一步过滤数据(即按属性 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 数组(我认为它是一个数组)一起使用以仅选择具有特定属性值的船?

4

1 回答 1

0

答案是在 foreach 循环中放置一个 if 语句。

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 } ?>

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

于 2017-01-15T20:01:58.773 回答