juanmiguelbesada / doctrine-translatable-form-bundle
dev-master
2019-08-30 12:53 UTC
Requires
- doctrine/orm: ^2.5
- stof/doctrine-extensions-bundle: ~1.2
- symfony/form: ~3.0|~4.0
- symfony/framework-bundle: ~3.0|~4.0
- symfony/property-access: ~3.0|~4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.12
This package is auto-updated.
Last update: 2024-08-29 05:00:11 UTC
README
此包添加了一个新的FormType,用于简化使用 Gedmo Doctrine Extensions 和 StofDoctrineExtensionsBundle 创建可翻译表单。
安装
使用 Symfony Flex 的应用程序
打开命令行控制台,进入您的项目目录并执行
$ composer require juanmiguelbesada/doctrine-translatable-form-bundle
不使用 Symfony Flex 的应用程序
步骤 1:下载包
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本
$ composer require juanmiguelbesada/doctrine-translatable-form-bundle
此命令需要您全局安装了 Composer,如 Composer 文档的安装章节中所述。
步骤 2:启用包
然后,通过将其添加到项目 app/AppKernel.php
文件中注册的包列表中来启用包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new JuanMiguelBesada\DoctrineTranslatableFormBundle\JuanMiguelBesadaDoctrineTranslatableFormBundle(), ); // ... } // ... }
步骤 3:配置包
最后,配置 TranslatableType 使用的默认语言
juan_miguel_besada_doctrine_translatable_form: locales: ['es', 'en', 'fr'] #you can add as much as you need
使用方法
<?php namespace AppBundle\Form; use Symfony\Component\Form\AbstractType; use JuanMiguelBesada\DoctrineTranslatableFormBundle\Form\TranslatableType; class CategoryType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { // you can add the translatable fields $builder ->add("name", TranslatableType::class, array( 'label' => 'Name', 'type' => TextType::class, 'type_options' => array( 'required' => false, ... ) )) ->add("description", TranslatableType::class, array( 'type' => TextareaType::class, 'locales' => array('es', 'fr', 'de', 'gl'), //Define custom languages 'type_options' => array( 'attr' => array( 'class' => 'my_class' ), ... ) )) ->add('enabled') // you can add the rest of the fields using the standard way ; } /** * @param OptionsResolver $resolver */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'AppBundle\Entity\Category' )); } }