2016-05-19 4 views

ответ

0

, если объект правильно отображается то вы можете просто использовать:

->add('testfield') 

и администратор Sonata выполнит эту работу.

Допустим, у вас есть класс продукта, связанный с классом Категория:

<?php 

namespace AppBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Product 
* 
* @ORM\Table(name="product") 
* 
*/ 
class Product 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @ORM\ManyToOne(targetEntity="Category", inversedBy="products") 
    */ 
    protected $category; 

    /** 
    * Get id 
    * 
    * @return int 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set category 
    * 
    * @param Category $category 
    * 
    * @return Product 
    */ 
    public function setCategory(Category $category = null) 
    { 
     $this->category = $category; 

     return $this; 
    } 

    /** 
    * Get category 
    * 
    * @return Category 
    */ 
    public function getCategory() 
    { 
     return $this->category; 
    } 
} 

Просто с помощью:

->add('category') 

обеспечит выберите поле формы со всеми категориями.

Вы также можете использовать SONATA_TYPE_MODEL, если вы хотите что-то более продвинутым:

<?php 
// src/AppBundle/Admin/ProductAdmin.php 

class ProductAdmin extends AbstractAdmin 
{ 
    protected function configureFormFields(FormMapper $formMapper) 
    { 
     $imageFieldOptions = array(); // see available options below 

     $formMapper 
      ->add('category', 'sonata_type_model', $imageFieldOptions) 
     ; 
    } 
} 

Документация на этой странице: Form Types

Надежда это помогает!