adrenalinkin/visualize-entity-bundle

通过 YAML 配置提供可视化实体数据的功能

安装: 16

依赖: 0

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

v1.0.0 2018-03-19 18:58 UTC

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 - 重置已显示字段的统计信息。

可视化器

不同数据类型的可视化由可视化器处理。您可以在预定义可视化器部分找到有关所有预定义可视化器的信息。有关注册新可视化器的更多信息,请参阅添加新可视化器部分。

依赖关系

许可证

license