Попробуйте получить значение assert, определенное в сущности в представлении.
С помощью:
Symfony 2.8
Соната Админ: 3.1
Я определил утверждение в модели следующим образом:
/**
* @var string
* @Assert\Length(
* min = 8,
* max = 60,
* minMessage = "Longer than {{ limit }}",
* maxMessage = "Shorter than {{ limit }}"* )
* @ORM\Column(name="title", type="string", length=60)
*/
private $title;
Форма администратора использует пользовательский тип формы для загрузки пользовательского представления:
<?php
namespace CustomBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class TextCountType extends AbstractType
{
public function getParent()
{
return TextType::class;
}}
И мнение:
{% block text_count_widget %}
{% spaceless %}
{{ block('form_widget_simple') }}
<script>
// some custom live validation
// HERE i need access to the Asserts
</script>
{% endspaceless %}
{% endblock %}
Мой вопрос:
Есть ли способ получить доступ к утверждениям в коде ветки?
Я не хочу переопределять его в классе администратора для каждой сущности.
Спасибо за помощь.
Трудно сказать, как это будет выглядеть, если вы не присоединяете строитель формы но лучшим способом получить эти переменные (если они существуют) будет создание объекта дампа и просмотр всех переменных.
{{ dump(form) }}
В любом случае вы не должны следовать этому методу. Наилучшим вариантом будет написать класс formBuilder и в attrs добавить ограничения проверки. В зависимости от типа они могут отличаться полный список типов, которые вы можете получить от там и внутри документации по типу должен быть полный список атрибутов, доступных для выбранного типа.
Других решений пока нет …