PHP Collectiontype表单细枝设计
我已经学习了如何为collectiontype制作表单/细枝的教程。我现在面临的问题是,我喜欢改变表单设计,但我不知道如何去做。我想把属性“Aantal”放在“Artikel”旁边。所以我希望你们能帮我 枝形 “Bestelordernummer、Leverancier和Keuringseisen”表格PHP Collectiontype表单细枝设计,php,forms,symfony,twig,Php,Forms,Symfony,Twig,我已经学习了如何为collectiontype制作表单/细枝的教程。我现在面临的问题是,我喜欢改变表单设计,但我不知道如何去做。我想把属性“Aantal”放在“Artikel”旁边。所以我希望你们能帮我 枝形 “Bestelordernummer、Leverancier和Keuringseisen”表格 <?php namespace AppBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Co
<?php
namespace AppBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class BestellingType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
//gebruiken wat je nodig hebt, de id hoeft er niet bij als deze auto increment is
$builder
->add('bestelordernummer', IntegerType::class) //naam is b.v. een attribuut of variabele van klant
;
$builder
->add('leverancier', TextType::class) //naam is b.v. een attribuut of variabele van klant
;
$builder
->add('keuringseisen', TextType::class, array ('required' => false)) //naam is b.v. een attribuut of variabele van klant
;
$builder
->add('bestelregels', CollectionType::class, [
'entry_type' => BestelregelType::class,
'allow_add' => true
])
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\Bestelling'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'appbundle_bestelregel';
}
}
“Artikel and Aantal”表格
<?php
namespace AppBundle\Form\Type;
use AppBundle\Entity\Artikel;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class BestelregelType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
//gebruiken wat je nodig hebt, de id hoeft er niet bij als deze auto increment is
$builder
->add('artikel', EntityType::class, [
'class' => 'AppBundle:Artikel',
'choice_label' => function (Artikel $artikel) {
return $artikel->getArtikelnummer() . ' - ' . $artikel->getOmschrijving() . ' - Bestelserie: ' . $artikel->getBestelserie();
}
])
->add('aantal');
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\Bestelregel'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'appbundle_bestelregel';
}
}
提前谢谢。谢谢你的回答,但遗憾的是,它不起作用。它似乎跳过了它。
{% for bestelregelField in form.bestelregels %}
<li>
{{ form_errors(bestelregelField) }}
<div class="row">
<div class="col-md-8">
{{ form_widget(bestelregelField.artikel) }}
</div>
<div class="col-md-4">
{{ form_widget(bestelregelField.aantal) }}
</div>
</div>
</li>
{% endfor %}
<?php
namespace AppBundle\Form\Type;
use AppBundle\Entity\Artikel;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class BestelregelType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
//gebruiken wat je nodig hebt, de id hoeft er niet bij als deze auto increment is
$builder
->add('artikel', EntityType::class, [
'class' => 'AppBundle:Artikel',
'choice_label' => function (Artikel $artikel) {
return $artikel->getArtikelnummer() . ' - ' . $artikel->getOmschrijving() . ' - Bestelserie: ' . $artikel->getBestelserie();
}
])
->add('aantal');
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\Bestelregel'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'appbundle_bestelregel';
}
}
{% for bestelregelField in form.bestelregels %}
<li>
{{ form_errors(bestelregelField) }}
<div class="row">
<div class="col-md-8">
{{ form_widget(bestelregelField.artikel) }}
</div>
<div class="col-md-4">
{{ form_widget(bestelregelField.aantal) }}
</div>
</div>
</li>
{% endfor %}