检查ArrayCollection是否为空

Chr*_*isS 26 arraycollection symfony symfony-2.2

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

$suppliers = $order->getSuppliers();
Run Code Online (Sandbox Code Playgroud)

我试过了:

if(!($suppliers)) {}
if(empty($suppliers)) {}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Ken*_*nel 71

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

if ($suppliers->isEmpty()) { }
Run Code Online (Sandbox Code Playgroud)

这里看看它的文档

  • 除了@KenHannel 所说的,还可以添加`Order::hasSuppliers(): bool` 方法,该方法返回`$this->suppliers->isEmpty()`。这样,如果有一天您决定从 Doctrine 迁移,您将只需要在一个地方更改您的代码。 (3认同)

A.L*_*A.L 6

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

if (count($suppliers) < 1) { }
Run Code Online (Sandbox Code Playgroud)