lucagentile/switch-array-key-extension

此包已被废弃,不再维护。未建议替代包。

通过其一个键选择一组对象

dev-master 2017-08-18 10:31 UTC

This package is not auto-updated.

Last update: 2022-05-04 11:02:55 UTC


README

Twig 扩展

给定一个集合或多级数组,通过关联到该键的子值获得一个新的数据集。

与 Doctrine 和 Eloquent 集合兼容。

例如,如果您有一个数组并提供了 'age' 键给过滤器

[
   ['name' => 'Mark', 'surname' => 'Lenders', 'age' => '17'],
   ['name' => 'Oliver', 'surname' => 'Hutton', 'age' => '15'],
   ['name' => 'Benjamin', 'surname' => 'Price', 'age' => '17'],
   ['name' => 'Bruce', 'surname' => 'Harper', 'age' => '15'],
]

过滤器返回

[
   '15' => [
       ['name' => 'Oliver', 'surname' => 'Hutton', 'age' => '15'],
       ['name' => 'Bruce', 'surname' => 'Harper', 'age' => '15']
   ],
   '17' => [
       ['name' => 'Mark', 'surname' => 'Lenders', 'age' => '17'],
       ['name' => 'Benjamin', 'surname' => 'Price', 'age' => '17']
   ]
]

何时使用

通常,您不应该在视图中这样做。当提供给视图时,数据应该是可供消费的。因此,在考虑使用此扩展之前,您应该问自己

  • 我能否在提供给视图之前从服务或控制器中操作数据(函数或ViewModel)?
  • 我的需求是否可以通过前端JavaScript更好地满足(例如,如果您需要在运行时多次操作数据)?

如果不是(这可能发生在您“无法”接触后端代码的情况下),您可以使用此扩展。

说明

composer require lucagentile\arrange-by-key-twig

Symfony: https://symfony.com.cn/doc/current/templating/twig_extension.html#register-an-extension-as-a-service

#services.yml
services:
    twig.extension.arrangebykey:
        class: Gautile\Twig\ArrangeByKeyExtension
        tags:
            - { name: twig.extension }

Laravel: https://github.com/rcrowe/TwigBridge#extensions

许可

MIT