i have problem with use in my form for different input different Entity.
Symfony 3.1.
What i mean : I have task to do form to save information about client and his order, i want that client will be in Client table and order in order, but form of one.
Now i have error with Neither the property "name" nor one of the methods ... because it search this method in order entity..
/**
* Order
*
* @ORM\Table(name="order_work")
* @ORM\Entity(repositoryClass="AppBundle\Repository\OrderWorkRepository")
*/
class OrderWork
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Client", cascade={"persist"})
* @ORM\JoinColumn(name="client_id", referencedColumnName="id")
*/
private $client;
/**
* @var string
*
* @ORM\Column(name="orderNumber", type="string", length=255)
*/
private $orderNumber;
/**
* @var date
*
* @ORM\Column(name="date", type="string", length=255)
*/
private $date;
I'm not show all code, but in entity i have all getter and setter.
/**
* Client
*
* @ORM\Table(name="client")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ClientRepository")
*/
class Client
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="surname", type="string", length=255)
*/
private $surname;
and in controller ...
public function createAction(Request $request)
{
$em = $this->getDoctrine()->getEntityManager();
$prefixId = 1;
$date = date('Y-m-d');
$now = date('Y-m-d H:i:s');
$orderNumber = $this->generateOrderNumber($em, $prefixId, $date);
$orderType = $request->get('orderType');
$order = new OrderWork();
$order->setOrderNumber($orderNumber);
$order->setDate($date);
$order->setOrderDate($now);
$order->setreturnDate('');
$order->setOrderType($orderType);
$order->setStatus(1);
$form = $this->createFormBuilder($order)
->add('orderNumber', TextType::class, ['label' => 'Užsakymo numeris', 'attr' =>
['class' => 'form-control', 'style' => 'margin-bottom:15px; width:250px', 'disabled' => true]])
->add('date', HiddenType::class)
->add('orderDate', HiddenType::class)
->add('returnDate', HiddenType::class)
->add('name', EntityType::class, ['label' => 'Vardas', 'attr' => [
'style' => 'margin-bottom:15px; width:250px'],
'class' => 'AppBundle:Client'])
->add('device', TextType::class, ['label' => 'Prekė', 'attr' =>
['class' => 'form-control', 'style' => 'margin-bottom:15px; width:250px']])
->add('workPrice', NumberType::class, ['label' => 'Pristatyta kaina', 'attr' =>
['class' => 'form-control', 'style' => 'margin-bottom:15px; width:250px']])
->add('deadLine', TextType::class, ['label' => 'Numatomi terminai', 'attr' =>
['class' => 'form-control', 'style' => 'margin-bottom:15px; width:250px']])
->add('complect', TextType::class, ['label' => 'Komplektacija', 'required' => false, 'attr' =>
['class' => 'form-control', 'style' => 'margin-bottom:15px; width:250px']])
->add('description', TextType::class, ['label' => 'Gedimo aprašymas', 'required' => false, 'attr' =>
['class' => 'form-control', 'style' => 'margin-bottom:15px; width:250px']])
->add('screenPass', TextType::class, ['label' => 'Įrenginio ekrano užraktas / slaptažodis',
'required' => false, 'attr' => ['class' => 'form-control', 'style' => 'margin-bottom:15px; width:250px']])
->add('surrogatephone', EntityType::class, ['label' => 'Pakaitinis telefonas',
'attr' => ['class' => 'form-control' ,'style' => 'margin-bottom:15px; width:250px'],
'class' => 'AppBundle:SurrogatePhone',
'query_builder' => function ($em) {
return $em->createQueryBuilder('s')
->orderBy('s.id', 'ASC');
},
'placeholder' => 'Pasirinkite',
'choice_label' => 'name',])
->add('save', SubmitType::class, ['label' => 'Sukurti', 'attr' =>
['class' => 'btn btn-primary', 'style' => 'margin-top:15px']]
)->getForm();
$form->handleRequest($request);
sorry for my english :)