Я новичок в Symfony, и я пытаюсь передать объект из списка на новую страницу с помощью:Symfony3 Идентификатор идентификатор отсутствует для запроса AppBundle Entity
<a href="{{ path('fooUpdate', { 'id': item.id }) }}">Update</a>
Список ({% for item in list %})
объектов Foo прекрасно, объекты полностью загружены из базы данных, но ссылка не работает из-за этой ошибки Doctrine:
The identifier id is missing for a query of AppBundle\Entity\Foo
Вот класс Foo:
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="foo")
*/
class Foo {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
*/
private $id;
/**
* @ORM\Column(type="string")
*/
private $description;
//getters and setters
А вот метод контроллера:
/**
* @Route("/foo/fooUpdate/", name="fooUpdate")
*/
public function updateAction($id, Request $request) {
$foo = $this->getDoctrine()->getRepository('AppBundle:Foo')->find($id);
return $this->render('/foo/fooUpdate.html.twig', array(
'foo' => $foo
));
}
Сама ссылка выглядит как это работает, потому что URL ошибки является:
http://127.0.0.1:8000/foo/fooUpdate/?id=1
Так что я упускаю ?
Кроме того, есть ли способ сделать это с помощью POST, поэтому идентификатор не будет отображаться в URL-адресе?
О, спасибо! Это сработало, но любая идея о том, как это сделать через почту? – Eduardo
Предполагая, что у вас есть форма или аналогичная информация для отправки ваших данных. Вы должны настроить свой маршрут как * @Method ({"POST"}), а затем в действии вашего контроллера вы получите сообщение vars. Saludos – Hokusai