habanatech / business-model
此包已被弃用且不再维护。未建议替代包。
用于组合通用项目不同部分的包
v1.0.7.3
2020-08-12 03:30 UTC
Requires
- php: >=7.4.0
- ext-gd: *
- friendsofsymfony/ckeditor-bundle: ^2.2
- liip/imagine-bundle: ^2.3
- symfony/dependency-injection: *
- symfony/event-dispatcher: *
- symfony/form: *
- symfony/http-kernel: *
- symfony/options-resolver: *
- symfony/orm-pack: *
- symfony/property-access: *
- vich/uploader-bundle: ^1.13
README
用于组合通用项目不同部分的包。
##安装
composer require habanatech/business-model
动态元数据字段
向数据库中的实体添加一个字段以存储任何元数据。
- 使用
HabanaTech\BusinessModel\ORM\Traits\MetadataFieldTrait
特性。
动态翻译
向数据库中的实体添加一个字段以存储任何翻译作为元数据。
- 使用
HabanaTech\BusinessModel\ORM\Traits\MetadataFieldTrait
特性。 - 使用
HabanaTech\BusinessModel\ORM\Traits\TranslationTrait
特性。 - 实现
HabanaTech\BusinessModel\ORM\Interfaces\TranslationInterface
接口。
在表单上使用 HabanaTech\BusinessModel\Form\MetadataTranslationType
类型并配置它,例如: - { property: 'title', type: 'HabanaTech\BusinessModel\Form\MetadataTranslationType', type_options: { field: 'title'} }
在 services.yml
中添加允许的语言作为常量,例如
default_locale: en
locale: '%default_locale%'
app_locales: ch|en|fr|de|es
可选地,使用 bootstrap 4 的表单主题 '@HabanaTech_BusinessModel\metadata_translation_bootstrap_4_layout.html.twig'
并将其添加到您的 twig.yaml
文件中
paths:
'%kernel.project_dir%/vendor/habanatech/business-model/BusinessModel/templates': HabanaTech_BusinessModel
读取时,$entity->translate('fr')
返回包含翻译属性的数组。
您需要添加以下服务
HabanaTech\BusinessModel\Form\MetadataTranslationType: ~ `
HabanaTech\BusinessModel\EventSubscriber\TranslationsSubscriber: ~`
或者您也可以添加所有服务
HabanaTech\BusinessModel\:
resource: '../vendor/habanatech/business-model/BusinessModel/*'
exclude: '../vendor/habanatech/business-model/BusinessModel/{DependencyInjection,Entity,templates}'
实体
Image, FilterTag, DescriptionFragment
这些实体可能很有用,请记住添加 doctrine ORM 的监听器以处理您的关联 https://symfony.com.cn/doc/current/doctrine/resolve_target_entity.html
例如:在文件 doctrine.yaml 中
orm:
resolve_target_entities:
HabanaTech\BusinessModel\ORM\Entity\Image: App\Entity\Service
为了添加所有实体和 ORM 映射
orm:
resolve_target_entities:
BusinessModel:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/vendor/habanatech/business-model/BusinessModel/ORM/Entity/'
prefix: HabanaTech\BusinessModel\ORM\Entity
alias: BusinessModel