Проверка формы Symfony 2 (без ошибок)

Меня немного смущает эта проблема:
У меня есть 2 Entity, Horaire (среднее расписание Horaire) и HoraireLine, где $ horaire-> lines представляет собой массив HoraireLine, а $ horaireLine-> horaire является владельцем Horaire.

Для сохранения сущностей моего Horaire я использую коллекцию формы HoraireLine в форме Horaire, но последняя isValid () в любом случае возвращает false, и я ни разу не получил ошибку. Я проверил ошибки в форме, и дочерние формы: нет. Я проверяю ошибку сущностей с помощью:

$validator = $this->get('validator');
$errorList = $validator->validate($this->getSeller()->getHoraire()->getLines());

И пустой массив возвращается. Но форма-> isValid () по-прежнему ложна.
Я не установил сведения о валидаторе.

Вот мой код (в моем контроллере):

[...]
/*
*  Horaire's form (about horaireLines)
*/

/*
*  Init Horaire's lines threatment
*  (for don't get null horaire line)
*  @Unlegit indent
*/

if($this->getSeller()->getHoraire()->getLines()){
foreach (EnumDay::getEnum() as $k => $day) {
$this->getSeller()->getHoraire()->addLine(new HoraireLine( $this->getSeller()->getHoraire(), $day, null, null, null, null ));
}
}

$horaireForm = $this->createForm(new HoraireType(), $this->getSeller()->getHoraire());

$validator = $this->get('validator');
$errorList = $validator->validate($this->getSeller()->getHoraire()->getLines());
var_dump($errorList);

if ($horaireForm->isValid()) {
$em->persist($this->getSeller()->getHoraire());
/*foreach ($this->getSeller()->getHoraire()->getLines() as $key => $value) {
$em->persist($value);
}*/
}
[...]

$ this-> getSeller () — это ярлык для объекта, принадлежащего текущему пользователю, получаемого в контексте безопасности.

А вот и сущность сущностей:

Ctx\BaoBundle\Entity\HoraireLine:
type: entity
table: null
id:
id:
type: integer
id: true
generator:
strategy: AUTO
fields:
am_opening:
type: time
nullable: true
am_closing:
type: time
nullable: true
pm_opening:
type: time
nullable: true
pm_closing:
type: time
nullable: true
day:
type: object
manyToOne:
horaire:
targetEntity: Horaire
inversedBy: lines
cascade: ["persist", "merge"]
joinColumn:
name: horaire_id
referencedColumnName: id
lifecycleCallbacks: {  }

Ctx\BaoBundle\Entity\Horaire:
type: entity
table: null
id:
id:
type: integer
id: true
generator:
strategy: AUTO
oneToOne:
seller:
targetEntity: Seller
inversedBy: horaire
joinColumn:
name: seller_id
referencedColumnName: id
cascade: ["persist", "merge"]
oneToMany:
lines:
targetEntity: HoraireLine
mappedBy: horaire
cascade: ["persist", "merge"]
lifecycleCallbacks: {  }

Я использую cascade: [«persist», «merge»], потому что мне нужно было использовать постоянный каскад, но я не знаю, полезно ли слияние.
Я использую учение для персистентной сущности.

Спасибо за аванс за ответ, и извините, если это фиктивная ошибка x)

0

Решение

Я нашел ошибку, и да, это была фиктивная ошибка.

Я пишу для следующих парней в той же ситуации:

Я просто забываю сделать дескриптор $ horaireForm-> ($ request) после него

$horaireForm = $this->createForm(new HoraireType(), $this->getSeller()->getHoraire());

Не забудьте инициировать запрос $ этим:

public function <name your action>Action(Request $request)
{

Symfony сам установит $ запрос на обработку ваших форм.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]