Приветствую всех. Исходная ситуация:
(пропущены не существенные для вопроса части кода)
Сущность Oldemand:
namespace Acme\AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
...
class Oldemand
{
...
/**
* @var integer
*
* @ORM\Column(name="status_id", type="integer")
* @ORM\ManyToOne(targetEntity="Status", inversedBy="status_id")
* @ORM\JoinColumn(name="status_id", referencedColumnName="id")
*/
private $status_id;
...
}
Форма formEditOldemandType:
namespace Acme\AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Form\FormBuilderInterface;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\EntityManager;
use Acme\AppBundle\Form\formStatusType;
class formEditOldemandType extends AbstractType
{
public function buildForm( FormBuilderInterface $builder, array $options )
{
$builder->add( 'status', new formStatusType() )
...
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Acme\AppBundle\Entity\Oldemand',
);
}
public function getName()
{
return 'formcloseoldemand';
}
}
Форма StatusType, внедренная в formEditOldemandType:
namespace Acme\AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Form\FormBuilderInterface;
//use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class formStatusType extends AbstractType
{
public function buildForm( FormBuilderInterface $builder, array $options )
{
$builder->add( 'status', 'entity', array(
'class' => 'Acme\AppBundle\Entity\Status',
'property' => 'status_name',
'label' => 'Статус: '
)
);
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Acme\AppBundle\Entity\Status',
);
}
public function getName()
{
return 'status';
}
}
Сущность Status:
namespace Acme\AppBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
...
class Status {
/**
* @var integer
*
* @ORM\Column(name="id", type="bigint", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(name="status_id", type="bigint")
*/
private $status_id;
/**
* @var string
*
* @ORM\Column(name="status_name", type="string")
*/
private $status_name;
...
}
При таком описании сущностей и способа внедрения формы у меня в форме formEditOldemandType
выводится полный список статусов из внедренной сущности Status, но такой вывод всех
возможных статусов хорош когда заявка (Oldemand => demand - заявка) создается -
выбрали нужный статус и сохранили в БД новую заявку.
Но у меня formEditOldemandType - форма редактирования уже существующей заявки
с существующим значением статуса, т.е. в поле status должны выводиться списком
все статусы из сущности Status и внедренной формы StatusType, где существующее
значение из сущности Oldemand должно быть selected - все.
Или другими словами: formEditOldemandType должно выводить текущее значение, выделенное как selected
в списке всех статусов из внедренной формы StatusType.
Что мне нужно сделать в приведенном выше коде, чтобы получился selected значения?
Заранее благодарю за помощь.