Symfony 5 – используйте выражение Assert Expression в формеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Symfony 5 – используйте выражение Assert Expression в форме

Сообщение Anonymous »

Я хотел бы использовать ограничение выражения из формы.
Теперь у меня есть ограничение выражения в моей сущности, вот так:

Код: Выделить всё

    /**
* @ORM\Column(type="string", length=255)
* @Assert\Choice(choices=TypeConge::TYPE_SOLDE, message="Veuillez choisir une valeur valide.")
* @Assert\Expression(
*     "not (this.getId() != null and this.getTypeSolde() != this.getConfirmTypeSolde())",
*     message="Vous ne pouvez pas modifier le type de solde d'un type de congé que vous avez déjà créé ! ({{ value }})"
* )
*/
private ?string $typeSolde = null;
Теперь я хочу переместить его в formType:
В моем FormType я:

Код: Выделить всё

->add('typeSolde', ChoiceType::class, [
//...
'constraints' => [
new Expression([
'expression' => 'not (this.getId() != null and this.getTypeSolde() != this.getConfirmTypeSolde())',
'message' => "Vous ne pouvez pas modifier le type de solde d'un type de congé que vous avez déjà créé ! ({{ value }})"
])
]
])
Но он возвращает следующую ошибку:

Код: Выделить всё

Unable to call method "getId" of object "Symfony\Component\Form\Form".
В документе не сказано, как мы можем это сделать.

Подробнее здесь: https://stackoverflow.com/questions/674 ... -in-a-form
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»