大佬教程收集整理的这篇文章主要介绍了php – Symfony2:在Form Component中注入translation_domain的位置,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用自定义类型来捆绑我的表单信息.
我的自定义类型:
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; use Symfony\Component\Validator\ConsTraints\Collection; use Symfony\Component\Validator\ConsTraints\NotBlank; class LoginType extends AbstractType { public function setDefaultOptions(OptionsResolverInterface $resolver) { $collectionConsTraint = $collectionConsTraint = new Collection(array( 'password' => array(new NotBlank(array('message' => 'custom.error.blank'))),'username' => array(new NotBlank(array('message' => 'custom.error.blank'))) )); $resolver->setDefaults(array( 'consTraints' => $collectionConsTraint )); } public function buildForm(FormBuilderInterface $builder,array $options) { $builder->add('username','text',array( 'max_length' => 250,'trim' => true )); $builder->add('password','password','trim' => true )); } public function getName() { return 'login'; } }
控制器中表单创建的相关代码片段:
$loginForm = $this->createForm(new LoginType(),$loginDefaultData); $loginForm->bind($request); [...] return $this->render( 'MyBundle:SubFolder:login.html.twig',array( 'loginForm' => $loginForm->createView() ) );
public function setDefaultOptions(OptionsResolverInterface $resolver) { // ... $resolver->setDefaults(array( 'consTraints' => $collectionConsTraint,'translation_domain' => 'customTranslationDomain' )); }
但是,在使用的twig模板中,此translation_domain用于@L_618_6@和选项,但错误消息不会与此translation_domain一起提供.它们总是在默认的树枝模板中使用相同的固定集域“验证器”进行翻译
将这些消息捆绑在一个域中通常是有意义的,但在我的情况下则不然,因为相同的约束(及其错误消息)必须根据上下文以不同的方式进行转换,并且每个上下文都是在隔离的域中组织的.
我的解决方案是customize the form rendering as described in the Symfony2 documentation,重新定义form_errors片段并使用动态translation_domain twig变量也用于错误消息输出.
以上是大佬教程为你收集整理的php – Symfony2:在Form Component中注入translation_domain的位置全部内容,希望文章能够帮你解决php – Symfony2:在Form Component中注入translation_domain的位置所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。