在本文中,我们将给您介绍关于css–将类属性添加到symfony表单构建器行div的详细内容,并且为您解答css添加类名的相关问题,此外,我们还将为您提供关于forms–Symfony2–将类添加到表
在本文中,我们将给您介绍关于css – 将类属性添加到symfony表单构建器行div的详细内容,并且为您解答css添加类名的相关问题,此外,我们还将为您提供关于forms – Symfony2 – 将类添加到表单标记、php – Symfony ManyToMany表单、php – Symfony中的URL自动添加了params?Symfony =、php – Symfony表单域属性empty_data被忽略的知识。
本文目录一览:- css – 将类属性添加到symfony表单构建器行div(css添加类名)
- forms – Symfony2 – 将类添加到表单标记
- php – Symfony ManyToMany表单
- php – Symfony中的URL自动添加了params?Symfony =
- php – Symfony表单域属性empty_data被忽略
css – 将类属性添加到symfony表单构建器行div(css添加类名)
$builder->add('email','email',array('label' => 'form.email','translation_domain' => 'FOSUserBundle'))
上面生成的代码:
<formrole="form" method="POST" action="/app_dev.PHP/register/"> <div id="fos_user_registration_form"> <div> <labelhttps://www.jb51.cc/tag/required/" target="_blank">required" for="fos_user_registration_form_email">Email: </label> <input id="fos_user_registration_form_email" type="email" required="required" name="fos_user_registration_form[email]"> </div> </div> </form> </div>
我的问题是如何将类属性添加到行div成为:
<div> <labelhttps://www.jb51.cc/tag/required/" target="_blank">required" for="fos_user_registration_form_email">Email: </label> <input id="fos_user_registration_form_email" type="email" required="required" name="fos_user_registration_form[email]"> </div>
解决方法
编辑:
更好的解决方案
{% for child in form.children|keys %} <div> {% if 'token' not in form_label(attribute(form.children,child)) %} {{form_label(attribute(form.children,child)) }} {% endif %} {{form_widget(attribute(form.children,child)) }} </div> <br/> {% endfor %}
造成:
<div> <label>e-mail</label> <input type="email"> </div>
它删除了未使用的div和令牌标签,我们可以使用.registration_field选择器而不是.registration_field> DIV
为Amstell:我回答了skler的解决方案,说对我来说这不是解决方案,对不起,目前尚不清楚.
forms – Symfony2 – 将类添加到表单标记
->add('foo','text',array('attr' => array('class' => 'foo-class'));
但我怎么能把一个类添加到< form>标签?
解决方法
1)在你的控制器中:
$form = $this->createForm(new FormType(),$data,['attr' => ['class' => 'myClass']]);
2)在你看来(Twig):
{{ form_start(form,{ 'attr' : { 'class': 'myClass' } }) }}
php – Symfony ManyToMany表单
Message Origin Cause This value is not valid. skills Symfony\Component\Validator\ConstraintViolation Object(Symfony\Component\Form\Form).children[skills] = [0 => AngularJS,1 => API] Caused by: Symfony\Component\Form\Exception\TransformationFailedException Unable to reverse value for property path "skills": Could not find all matching choices for the given values Caused by: Symfony\Component\Form\Exception\TransformationFailedException Could not find all matching choices for the given values
在我删除的实体中
/** * Constructor */ public function __construct() { $this->language = new \Doctrine\Common\Collections\ArrayCollection(); $this->platforms = new \Doctrine\Common\Collections\ArrayCollection(); $this->specialities = new \Doctrine\Common\Collections\ArrayCollection(); }
并且在语言,平台上也被删除了
实体:
class Skill { use Timestampable; /** * @var integer * * @ORM\Column(name="id",type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var \MyBundle\Entity\CodeDirectoryProgramLanguages * * @ORM\ManyToMany(targetEntity="CodeDirectoryProgramLanguages",inversedBy="skills",cascade={"persist"}) */ protected $language; /** * @var \MyBundle\Entity\CodeDirectoryPlatforms * * @ORM\ManyToMany(targetEntity="CodeDirectoryPlatforms",cascade={"persist"}) */ protected $platforms; /** * @var \MyBundle\Entity\CodeDirectorySpecialities * * @ORM\ManyToMany(targetEntity="CodeDirectorySpecialities",cascade={"persist"}) */ protected $specialities;
一个例子:
class CodeDirectorySpecialities { use Timestampable; /** * @var integer * * @ORM\Column(name="id",type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="specialities",type="string",length=255) */ private $specialities; /** * @ORM\ManyToMany(targetEntity="MyBundle\Entity\Skill",mappedBy="specialities",cascade={"persist"}) */ protected $skills;
并添加到所有实体
public function __toString() { return $this->string_filed_entity; }
这是我的表格
public function buildForm(FormBuilderInterface $builder,array $options) { $builder ->add('specialities'); $builder->add('skills','entity',array( 'class'=>'MyBundle\Entity\Skill','property'=>'skill','multiple'=>true,'expanded' => true,) ); }
和行动
$entity = new CodeDirectorySpecialities(); $form = $this->createCreateForm($entity); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $skills = $entity->getSkills()->getValues(); if(!empty($skills)){ foreach($skills as $skill){ $skill->addSpeciality($entity); $em->persist($skill); } } $em->persist($entity); $em->flush(); return $this->redirect($this->generateUrl('specialities_show',array('id' => $entity->getId()))); }
解决方法
要添加专业,您不需要技能,因此您需要向您的构建者做广告:
public function buildForm(FormBuilderInterface $builder,array $options) { $builder ->add('specialities') ->add('skills',array( 'class' => 'AppBundle\Entity\Skill','property' => 'skill','multiple' => true,'expanded' => true )) ; }
为你的另外两个子表格做同样的事情
如果您想在创建专业时选择一项或多项技能,则只需在控制器中执行:
$entity = new CodeDirectorySpecialities(); $form = $this->createCreateForm($entity); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $entity = $form->getData(); $em->persist($entity); $em->flush(); return $this->redirect($this->generateUrl('specialities_show',array('id' => $entity->getId()))); }
由于您之间的多对多关系,技能将自动更新
php – Symfony中的URL自动添加了params?Symfony =
我的网址有问题. Symfony会自动添加params?Symfony =
怎么删除?
我认为这是一个改变的服务器设置.
http://mysite.com/?symfony=123456789
Symfony:Symfony 1.4
解决方法:
它看起来像会话ID.
将session.use_only_cookies设置为1仅使用cookie在客户端存储会话ID.
php – Symfony表单域属性empty_data被忽略
sqlSTATE[23000]: Integrity constraint violation: 1048 Column 'shell' cannot be null
因此,文档说如果您不希望使用NULL作为默认值,则可以在文本或选择字段上指定empty_data属性.但是,这对我来说不行.
实体字段(不可空):
/** * @ORM\Column(type="string") */ protected $shell = '';
表单生成器(不需要):
->add('shell','choice',array( 'label' => 'Shell','choices' => array('shell' => 'Fancy Pants'),'required' => false,'empty_data' => '' ))
我是否误会了这个空数据属性?我在其他地方缺少一些重要的设置吗?推荐的方法是什么?
UPDATE
这个Github ticket解释说这是2012年的一个问题,它还没有被修复.
这意味着每个使用表单构建器的人都被迫将任何不需要的字段置于可空字段中?对于框架来说,这似乎是很有意思的.当默认的”或’0’没有唯一的含义并且我们不需要NULL时,有很多原因我们不想使用NULL.对于许多查询,必须检查两个字段= 0或字段= NULL的存在是一个痛苦.
其他人正在使用更好的解决方案吗?
public function __construct() { $this->shell = 0; }
或者,您可以在设定者中进行处理:
public function setShell($shell) { $this->shell = $shell; if ( !is_numeric($shell) ) { $this->shell = 0; } return $this; }
也许不是最好的做法,但它的作用是没有可以使用的值.
我们今天的关于css – 将类属性添加到symfony表单构建器行div和css添加类名的分享已经告一段落,感谢您的关注,如果您想了解更多关于forms – Symfony2 – 将类添加到表单标记、php – Symfony ManyToMany表单、php – Symfony中的URL自动添加了params?Symfony =、php – Symfony表单域属性empty_data被忽略的相关信息,请在本站查询。
本文标签: