Code Monkey home page Code Monkey logo

doctrineutilbundle's Introduction

DoctrineUtilBundle

Simple way to translate your entities in forms.

Installation: add to you composer.json https://packagist.org/packages/tuxes3/doctrine-util-bundle

Add to your project in your AppKernel.php:

...
new TX3\DoctrineUtilBundle\Tuxes3DoctrineUtilBundle(),
...

Annotated your entities

...
use TX3\DoctrineUtilBundle\Annotations as TX3;
...
/**
 * @var string
 * @TX3\Translatable()
 */
protected $name;

/**
 * @TX3\Translatable(true)
 */
protected $translations = array();
...

Use it in a FormType

...
$builder->add('translations', 'translation', array(
	'label' => 'Tag Name',
));
...

A form is rendered with an input for each defined languag in config.yml:

tuxes3_doctrine_util:
	locales: [de,en]

Searching by translated field:

...
$repo = $this->em->getRepository("XXXXBundle:Tag");
$translationRepo = $this->em->getRepository("Tuxes3DoctrineUtilBundle:Translation");
$tag = $repo->find($translationRepo->id('Tag', 'name', $name)); // 'Tag' ===> Classname of entity, 'name' ===> fieldname
...

Saving a translation in code:

$tag = new Tag();
$tag->setName($name);
$this->em->persist($tag);
$this->em->flush(); // <-- flush is important as instead the id is not set... :/
$translation = new Translation();
$translation->setObjid($tag->getId());
$translation->setField('name');
$translation->setClass('Tag');
$translation->setContent($name);
$translation->setLocale('en');
$this->em->persist($translation);

TODO:

  • Search with language
  • more options in formtype rendering
  • Use Doctrine caching
  • ...

doctrineutilbundle's People

Contributors

tuxes3 avatar

Stargazers

Ueli Banholzer avatar

Watchers

Ueli Banholzer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.