flexmodel/flexmodel-bundle

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

Symfony 3+ 的 FlexModel 集成。

安装: 6,578

依赖者: 1

建议者: 0

安全: 0

星标: 0

关注者: 1

分叉: 7

开放问题: 8

类型:symfony-bundle

1.0.5 2018-01-29 10:18 UTC

This package is auto-updated.

Last update: 2020-07-17 06:06:08 UTC


README

Software License

Symfony 的 FlexModel 集成。

使用 Composer 安装

运行以下命令将包添加到项目的 composer.json 中

$ composer require flexmodel/flexmodel-bundle

启用包

在内核中启用包

// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new FlexModel\FlexModelBundle\FlexModelBundle(),
        // ...
    );
}

配置包

将以下配置添加到您的 config.yml 文件中

# app/config/config.yml

flex_model:
    bundle_name: AppBundle # optional, defaults to 'AppBundle'
    resource: "%kernel.root_dir%/../src/AppBundle/Resources/config/flexmodel.xml"

resource 应指向您的 FlexModel 配置文件的位置。

使用方法

生成 Doctrine ORM 映射

运行以下命令从您的 FlexModel 配置生成 Doctrine ORM 映射和实体类

$ php bin/console flexmodel:generate

在生成 Doctrine ORM 映射后,您需要更新您的数据库模式

$ php bin/console doctrine:schema:update --force

创建表单

要从 FlexModel 表单配置创建表单,您需要使用 FlexModelFormType 类。

该类将根据实体名称和提供的 'form_name' 选项检索表单配置。

// src/AppBundle/Controller/DefaultController.php

public function newAction()
{
    $entity = ...;
    $form = $this->createForm(FlexModelFormType::class, $entity, array(
        'form_name' => '',
    ));
}

有关创建表单的更多信息,请参阅 Symfony 文档

文件上传

FlexModelBundle 提供了对 FlexModel 表单中文件上传的支持。

要激活此支持,您需要完成以下步骤

1. 为文件上传配置 FlexModelBundle

包需要一个位置来存储文件上传。使用您 config.yml 文件中的现有 FlexModelBundle 配置来配置此位置

# app/config/config.yml

flex_model:
    resource: "%kernel.root_dir%/../src/AppBundle/Resources/config/flexmodel.xml"
    file_upload_path: "%kernel.root_dir%/../../some-directory-outside-of-the-project/%kernel.environment%"

2. 修改您的 Doctrine 实体类

要为 Doctrine 实体激活文件上传,您需要实现 UploadObjectInterface 并为表单字段添加获取器和设置器。

为了便于使用,FlexModelBundle 提供了一个 UploadTrait 来实现接口和获取器、设置器

namespace AppBundle\Entity;

use FlexModel\FlexModelBundle\Model\UploadObjectInterface;
use FlexModel\FlexModelBundle\Model\UploadTrait;

class Entity implements UploadObjectInterface
{
    use UploadTrait {
        getFileUpload as getImageUpload;
        setFileUpload as setImageUpload;
        getFileUpload as getAnotherImageUpload;
        setFileUpload as setAnotherImageUpload;
    }
}

在上面的示例中,您可以看到实现了两个文件上传字段的 UploadTrait 和获取器、设置器。在这里,getImageUpload 方法映射到 FlexModel 字段 'image',而 getAnotherImageUpload 映射到 'another_image'。

致谢

许可证

此包受 MIT 许可证的许可。有关详细信息,请参阅 LICENSE 文件