エンティティからフォームに複数の行を返そうとしています。フォームとコントローラは以下のとおりです。エンティティからフォームへの複数の行をsymfony 3で返す方法
フォーム
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ExceptionFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('usrid')
->add('trcode')
->add('cola', NumberType::class,
['scale' => 2])
->add('colb', NumberType::class,
['scale' => 2]
)
->add('colc', NumberType::class,
['scale' => 2])
->add('cold')
->add('fringe', ChoiceType::class,
array(
'choices' => array(
'No' => 0,
'Yes' => 1
)
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'AppBundle\Entity\Exception'
]);
}
public function getBlockPrefix()
{
return 'app_bundle_exception_form_type';
}
}
は、ここに私のコントローラこれは動作し、1行分のすべての情報をレンダリングする
public function editExceptions(Request $request, Exception $exception)
{
$form = $this->createForm(ExceptionFormType::class, $exception);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$exceptions = $form->getData();
$em = $this->getDoctrine()->getManager();
$em->persist($exceptions);
$em->flush();
$this->addFlash('success', 'Exception Added');
return $this->redirectToRoute('home');
}
return $this->render('exceptions/edit.html.twig', [
'exceptionForm' => $form->createView()
]);
}
です。時には、フォームにレンダリングする必要がある行が複数あることがあります。私はデバッグを見て、私はこのSQLを取得します。
SELECT
t0.usrid AS usrid_1,
t0.trcode AS trcode_2,
t0.cola AS cola_3,
t0.colb AS colb_4,
t0.colc AS colc_5,
t0.cold AS cold_6,
t0.dept AS dept_7,
t0.fringe AS fringe_8,
t0.seq AS seq_9,
t0.id AS id_10
FROM
exception t0
WHERE
t0.usrid = ?
LIMIT
1
「LIMIT 1」を削除するにはどうすればよいですか? 私は適切な質問、正しい方法を尋ねているとは確信していません。私はSymfonyを約1ヶ月使っています。私はgoogle、stackoverflow、およびsymfonyのドキュメントを精査しましたが、私が探しているもの、または私が探しているものをどのように正確に見つけることができません。
私は自分自身をより良く説明しようとしています。
|---------|---------|---------|--------|---------|---------|---------|
| usrid | trcode | cola | colb | colc | cold | fringe |
|---------|---------|---------|--------|---------|---------|---------|
| 25 | A | bill | smith | 2.00 | 4.00 | yes |
|---------|---------|---------|--------|---------|---------|---------|
| 25 | C | bill | smith | 4.34 | 5.00 | yes |
|---------|---------|---------|--------|---------|---------|---------|
| 25 | F | bill | smith | 1.54 | 2.76 | no |
|---------|---------|---------|--------|---------|---------|---------|
| 38 | A | bob | smith | 2.00 | 4.00 | yes |
|---------|---------|---------|--------|---------|---------|---------|
| 56 | L | maggie | smith | 2.00 | 4.00 | yes |
|---------|---------|---------|--------|---------|---------|---------|
| 21 | G | mark | smith | 2.00 | 4.00 | yes |
|---------|---------|---------|--------|---------|---------|---------|
これは私のテーブルの外観です。フォーム上では、最初の3行を表示する必要があります。なぜなら、それらは同じusridだからです。私は他の行を表示する方法を知っているので、かなり簡単です。これは1つのエンティティのみを使用しています。私はどのリポジトリにも参加していないし、使用していない。
は何が言いたいん:
は見をお持ちですか?あなたは多くのエンティティを取得したいですか?そして、n回繰り返す? – mpiot
はい。私は同じusrid、しかし異なるcola、colb、colc、cold、およびfringeデータのうちの5つを持つことができます。 – moe
Mmm、1つのエンティティの1つのフォームですが、コーラ、コルブなどのコレクションが必要ですか?エンティティを追加できますか?私はあなたが欲しいものを理解していないので – mpiot