Я немного путаюсь по этой проблеме: У меня есть 2 объекта, Horaire (Horarire mean Schedule) и HoraireLine, где $ horaire-> - это массив HoraireLine и $ horaireLine-> horaire - владелец Horaire.symfony 2 form validation (без ошибок)
Для сохранения сущностей Horaire я использую коллекцию формы HoraireLine в форме Horaire, но последний из них isValid() возвращает false любым способом, и я не получил один раз ошибку. Я проверил ошибки в форме, а childs form: none. Я проверяю сущность ошибки:
$validator = $this->get('validator'); $errorList = $validator->validate($this->getSeller()->getHoraire()->getLines());
И пустой массив - это возврат. Но form-> 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() ярлык к объекту собственного текущего пользователя, получить в контексте безопасности.
А вот YAML сущностей:
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: { }
Я использую каскад: [ «сохраняются», «слияние»], потому что мне нужно было использовать упорствовать каскад, но я не знаю, если слияние полезно , Я использую доктрину для сохраняющейся сущности.
Спасибо за заранее за ответ и извините, если это фиктивная ошибка х)