PHP code example of freezy-bee / doctrine-form-mapper

1. Go to this page and download the library: Download freezy-bee/doctrine-form-mapper library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

freezy-bee / doctrine-form-mapper example snippets


use FreezyBee\DoctrineFormMapper\DoctrineFormMapper;
use FreezyBee\DoctrineFormMapper\IComponentMapper;

class XPresenter extends Presenter
{
    /** @var DoctrineFormMapper @inject */
    public $mapper;

    /** @var EntityRepository @inject */
    public $articlesRepository;
    
    protected function createComponentForm()
    {
        $form = new Form;

        // Column
        $form->addText('name');

        // ManyToOne
        $form->addSelect('author')
            // order items
            ->setOption(IComponentMapper::ITEMS_ORDER, ['age' => 'ASC'])
            // filter items
            ->setOption(IComponentMapper::ITEMS_FILTER, ['age' => 0])
            // filter items by callback
            ->setOption(IComponentMapper::ITEMS_FILTER, function(QueryBuilder $qb) {
                $qb->andWhere('entity.age != 0')
            })
            // custom select label renderer
            ->setOption(IComponentMapper::ITEMS_TITLE, function (Author $author) {
                return $author->getName() . ' - ' . $author->getAge();
            });

        // ManyToOne
        $form->addRadioList('tags')
            ->setOption(IComponentMapper::ITEMS_TITLE, 'name');


        // ManyToMany
        $form->addMultiSelect('users')
            ->setOption(IComponentMapper::ITEMS_TITLE, 'username');

        // ManyToMany
        // btw you can define items and then ITEMS_TITLE is not