adrenalinkin / visualize-entity-bundle
通过 YAML 配置提供可视化实体数据的功能
v1.0.0
2018-03-19 18:58 UTC
Requires
- php: ~5.6||~7.0
- adrenalinkin/config-helper: ~1.0
- adrenalinkin/entity-helper-bundle: ~1.0
- doctrine/orm: ~2.5
- symfony/finder: ~2.8||~3.0
- symfony/framework-bundle: ~2.8||~3.0
- twig/twig: ^1.35||^2.0
Suggests
- symfony/symfony: Allows more advanced functionality with full Symfony package
This package is auto-updated.
Last update: 2024-09-09 02:01:01 UTC
README
简介
该包提供通过 YAML 配置可视化实体数据的功能。
安装
步骤 1: 下载包
打开命令行,进入您的项目目录并执行以下命令以下载此包的最新稳定版本
composer require adrenalinkin/visualize-entity-bundle
此命令需要您全局安装 Composer。
步骤 2: 启用包
然后,通过更新您的 app/AppKernel.php
文件来启用包
<?php // app/AppKernel.php class AppKernel extends Kernel { // ... public function registerBundles() { $bundles = [ // ... new Linkin\Bundle\EntityHelperBundle\LinkinEntityHelperBundle(), new Linkin\Bundle\VisualizeEntityBundle\LinkinVisualizeEntityBundle(), ]; return $bundles; } // ... }
配置
要开始使用该包,您需要在项目的所需包中创建配置文件。例如,为用户实体显示 3 个字段的基本配置
linkin_visualize_entity: acme_user_default: className: AcmeBundle:User fields: username: ~ firstName: ~ email: ~
有关配置文件的更多信息,请参阅Configuration file visualize_entity.yml部分。
用法
使用示例,预期使用上一部分中的简单配置。
控制器
要应用之前创建的简单用户配置,您只需调用 linkin_visualize_entity.builder
服务并调用 buildViewEntity
方法以创建特殊对象。您需要将配置名称作为第一个参数,将实体对象或实体标识作为第二个参数。
<?php use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Bundle\FrameworkBundle\Controller\Controller; /** * @Route("acme_user") */ class AcmeController extends Controller { /** * @Route("/user_view/{id}", name="acme_user_view") * * @Method("GET") * * @Template() * * @param int $id * * @return array */ public function viewAction($id) { $viewEntity = $this->get('linkin_visualize_entity.builder')->buildViewEntity('acme_user_default', $id); return [ 'viewEntity' => $viewEntity, ]; } }
TWIG 模板
ViewEntity
对象允许在 twig-template 中进行多种操作。最简单且最受欢迎的方法是 notDisplayed
- 将显示尚未显示的所有字段。
{# @var viewEntity \Linkin\Bundle\VisualizeEntityBundle\Entity\ViewEntity #} <table class="striped"> <tbody> {% for fieldData in viewEntity.notDisplayed %} <tr> <td><b>{{ fieldData.label }}:</b></td> <td>{{ fieldData.value|raw }}</td> </tr> {% endfor %} </tbody> </table>
当您需要在特定位置显示某些字段或仅获取特定字段时,应使用 fieldData
方法。下次调用 notDisplayed
方法时,将返回除了由 fieldData
方法调用已显示的所有数据之外的所有数据。
{# @var viewEntity \Linkin\Bundle\VisualizeEntityBundle\Entity\ViewEntity #} <table class="striped"> <thead> <th> <td>{{ viewEntity.fieldData('username').label }}</td> <td>{{ viewEntity.fieldData('username').value|raw }}</td> </th> </thead> <tbody> {% for fieldData in viewEntity.notDisplayed %} <tr> <td><b>{{ fieldData.label }}:</b></td> <td>{{ fieldData.value|raw }}</td> </tr> {% endfor %} </tbody> </table>
您还可以根据更具体的情况使用其他高级方法
entity
- 获取原始实体对象。entityId
- 获取原始实体标识。all
- 返回所有基于配置的字段,无论字段是否已显示。您还可以设置应从结果中排除的字段列表。alreadyDisplayed
- 返回所有已显示的列表字段。resetDisplayed
- 重置已显示字段的统计信息。
可视化器
不同数据类型的可视化由可视化器处理。您可以在预定义可视化器部分找到有关所有预定义可视化器的信息。有关注册新可视化器的更多信息,请参阅添加新可视化器部分。