mario-legenda / entity-filter
筛选实体集合并将它们转换为数组
1.0.0
2015-09-07 15:32 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- doctrine/common: 2.5.0
- phpunit/phpunit: 4.7.*
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 是一个数组,它包含 id、name 和您请求的其他值。 EntityFilter::setDataVar() 设置数组键的值,该键包含从User实体中指定的值的数组。默认是 data。
希望有人会找到这个有帮助。