mario-legenda/entity-filter

筛选实体集合并将它们转换为数组

1.0.0 2015-09-07 15:32 UTC

This package is auto-updated.

Last update: 2024-09-09 02:54:22 UTC


README

筛选Doctrine实体并将它们转换为数组。示例是最好的说明,所以继续阅读。

安装

$ composer require mario-legenda/entity-filter

基本用法

假设我们有一个 User 实体,它有25个字段来描述某个用户,如姓名、姓氏、社会保险号等。如果您只想使用其中的10个字段,您将不得不逐个调用每个方法并将它们放入一些变量中。代码如下...

$user = new User();

$name = $user->getName()
$lastname = $user->getLastname();
... 8 remaining fields

这会产生一些丑陋的代码。如果您希望将这些字段的值放入一个数组中,代码会更丑陋。

$user = new User();

$userData['name'] = $user->getName();
$userData['lastname'] = $user->getName();
... 8 remainig fields

现在,您可能会说,您可以查询数据库使用DQL,但在某些情况下,如果您想更新User到数据库,则需要一个干净的实体。这就是这个工具派上用场的时候。

$user = new User();
$entityFilter = new EntityFilter();

$filtered = $entityFilter
               ->setEntity($user)
               ->configure(array(
                   'id', 'name', 'lastname', 'ssn'
               ))
               ->setDataVar('user')
               ->getFiltered();

$filtered 是一个数组,它包含 idname 和您请求的其他值。 EntityFilter::setDataVar() 设置数组键的值,该键包含从User实体中指定的值的数组。默认是 data

希望有人会找到这个有帮助。