在树枝视图中访问Symfony Assert

时间:2017-10-15 12:28:26

标签: php symfony twig assertions sonata

尝试获取视图中实体中定义的断言值。

使用: 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 %}

我的问题是: 有没有办法访问树枝代码中的断言? 我不想在每个实体的admin类中重新定义它。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

很难说如果你没有附加form builder它会是什么样子,但获取这些变量的最佳方法(如果它们存在)将是转储形式对象并观察所有变量。 / p>

{{ dump(form) }}

无论如何,你不应该遵循这种方法。最好的选择是编写一个类formBuilder,并在attrs中添加验证约束。取决于类型,它们可能是您从there和内部类型文档中获得的不同类型的完整列表,应该有可用于所选类型的完整属性列表。