добавить обычное текстовое поле (не текстовое поле) в форму в symfony - PullRequest
0 голосов
/ 05 августа 2020

Я хочу показать список имен (который я получаю из базы данных) в форме с соответствующей кнопкой удаления и обновления. Но, добавив поле в форму, подобное этому: ->add('nombre',null,array('data' => $gen["name"],'label' =>'nombre', 'attr' => array('class' => 'className'))) Мне оно представляется как текстовое поле, и мне нужен текст, я не знаю, объясняю ли я себя, а не как текстовое поле. Я хочу вот так: https://postimg.cc/2LWQhMDM Это код моего контроллера:

<?php

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use AppBundle\Entity\Genus;
use Symfony\Component\HttpFoundation\Response;
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
use AppBundle\Form\GenusFormType;
use Symfony\Component\Form\Extension\Core\Type\AddressType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;

class DefaultController extends Controller
{
/**
 * @Route("/", name="homepage"))
 */

public function newAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$genuses = $em->getRepository('AppBundle:Genus')
->consulta(20);

foreach ($genuses as $gen)
{
$form = $this->createFormBuilder()
//->setAction($this->generateUrl('app_lucky_number'))
->setAction($this->generateUrl('homepage'))
->setMethod ("POST")
->add('nombre',null,array('data' => $gen["name"],'label' =>'nombre', 'attr' =>   array('class' => 'className')))
->add('id',HiddenType::class, ['data' => $gen["id"],])
->add('actualizar', SubmitType::class,array('label' => 'actualizar','attr' => array('class' => 'className')))
->add('borrar', SubmitType::class,array('label' => 'borrar','attr' => array('class' => 'className')))        
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
    $genus = $form->getData();
    $id=$genus["id"];
    if ($form->get('borrar')->isClicked())
    {
        $em = $this->getDoctrine()->getManager();
        $genuses = $em->getRepository('AppBundle:Genus')
        ->borrar($id);
    }
   
    //return $this->render('genus/principal.html.twig',array('name'=>$name));
    return $this->render('genus/principal.html.twig',array('id'=>$id));
}
$formularios[]=$form->createView();
}        
return $this->render('genus/show.html.twig',['genuses'=>$formularios]);
}
}
?>

1 Ответ

0 голосов
/ 05 августа 2020

Я думаю, что лучшим решением было бы создать отдельные методы обновления и удаления в контроллере.

Таким образом, вы можете создать табель, как показано на вашем экране, предоставив данные о $ genuses для показа шаблона. html .twig.

И там вы создаете a-тег, например:

<a href="{{ path('app_route_to_metho_delete', {id: genuses.id}) }}">Delete</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...