2017-01-14 6 views
0

開発者のドキュメントhereに従うと、オブジェクトの属性で結果をフィルタリングできますか?Concrete 5.8 Express Entry Block - 属性別結果のフィルタリング

たとえば、所有者が同じマリーナに複数のボートがあって、マリーナでそのオーナーのボートだけを探していたら、さらにデータをフィルタリングする方法があります(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配列(私は配列だと思います)を扱う簡単な解決策がありますか?

答えて

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

私はボートの所有者の名前をおそらくページ属性から変数として渡すと考えています。

関連する問題