【问题标题】:Check if ArrayCollection is empty检查 ArrayCollection 是否为空
【发布时间】:2013-07-12 15:45:48
【问题描述】:

我有一个将供应商保存在 Arraycollection 中的实体订单。 在我的控制器中,我想检查这个 arraycollection 是否为空:

$suppliers = $order->getSuppliers();

我试过了:

if(!($suppliers)) {}
if(empty($suppliers)) {}

有什么想法吗?

【问题讨论】:

    标签: symfony arraycollection symfony-2.2


    【解决方案1】:

    Doctrine ArrayCollection 有一个方法 isEmpty 可以满足您的需求。

    if ($suppliers->isEmpty()) { }
    

    查看它的文档here

    【讨论】:

    • 注意:这比 count() == 0 更可取。doctrine-project.org/api/common/2.3/…
    • 是的,你与 Doctrine 有联系(永远):-/
    • @UrosMajeric - 并非如此,如果您从 Doctrine 迁移,您只需要确保您的具体方法(或您自己的接口)与 Collection 接口匹配。
    • 除了@KenHannel所说的,还可以加上Order::hasSuppliers(): bool方法,返回$this->suppliers->isEmpty()。这样,如果有一天你决定从 Doctrine 迁移,你只需要在一个地方更改你的代码。
    【解决方案2】:

    您也可以使用count() PHP 函数:

    if (count($suppliers) < 1) { }
    

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 2010-12-23
      • 2013-07-18
      • 2013-07-27
      • 2015-08-09
      • 2017-06-14
      • 2017-10-07
      • 2019-09-30
      相关资源
      最近更新 更多