2013-08-10 2 views
3

Полная ошибка, которую я получаю, - это эта ошибка.Symfony, ошибка: при рендеринге было выбрано исключение

An exception has been thrown during the rendering of a template ("Some mandatory parameters are missing ("id") to generate a URL for route "FooBlogBundle_articles".") in "FooBlogBundle:Article:articles.html.twig".

Это контроллер, который обрабатывает действия:

public function articlesAction($id) 
    { 
     $em = $this->getDoctrine()->getManager(); 
      $blog = $em->getRepository('FooBlogBundle:Blog')->find($id); 

     if(!$em){ 
      throw $this->createNotFoundException('Unable to find blog posti'); 
     } 

     return $this->render('FooBlogBundle:Article:articles.html.twig', ['blog'=>$blog]); 
    } 
} 

и маршрутизации

FlickBlogBundle_articles: 
    pattern: /foo/{id} 
    defaults: { _controller: FooBlogBundle:Article:articles } 
    requirements: 
     _method: GET 
     id: \d+ 

Twig и базы данных, совершенно нормальны, нет типа или проблем. Но эту ошибку трудно обнаружить, где я ошибся.

EDIT: В том числе шаблона:

{% extends 'FooBlogBundle::layout.html.twig' %} 

{% block body %} 
{{ blog.title }}<br/> 
{{ blog.author }}<br/> 
{{ blog.blog }}<br/> 
{{ blog.tags }}<br/> 
{{ blog.comments }} 

{% endblock %} 

выше шаблон расположен в views/article/ она проходит еще шаблоны, найденные в views/ whic является просто

{% extends 'FooBlogBundle::layout.html.twig' %}

ответ

3

В FooBlogBundle:Article:articles.html.twig шаблоне у вас есть что-то вроде {{ path(FlickBlogBundle_articles) }} (не могу точно сказать, потому что я не вижу шаблон). Этот маршрут требует дополнительного параметра id. Поэтому изменить его {{ path(FlickBlogBundle_articles, {'id':article.id}) }}

+0

Привет, я буду попробуйте это althouh, я не уверен, как, но я обновил свой вопрос, включив в него шаблоны – ANW

+1

может быть его на 'FooBlogBundle :: layout.html.twig'? Найдите место, где вы создаете ссылку на 'FlickBlogBundle_articles' –

+0

Я следую этому руководству http://tutorial.symblog.co.uk/docs/doctrine-2-the-blog-model.html. И сделали точно так, как показано там. Я не могу найти метод path(), который вы указали для шаблонов, которые генерируют данные, за исключением перенаправления меню и формы – ANW

1

Я получил ту же ошибку, и в моем случае, если я забыл установить общественные Getters & сеттеров для моего частного иностранного ключа:

/** 
* @var Provider 
* 
* @ORM\ManyToOne(targetEntity="Provider") 
* @ORM\JoinColumn(name="fk_provider", referencedColumnName="id", nullable=true) 
*/ 
private $fkProvider; 

И

/** 
* @return Provider 
*/ 
public function getFkProvider() 
{ 
    return $this->fkProvider; 
} 

/** 
* @param Provider $fkProvider 
*/ 
public function setFkProvider($fkProvider) 
{ 
    $this->fkProvider = $fkProvider; 
} 
Смежные вопросы