2016-07-25 52 views
0

我得到NotFoundHttpException錯誤,當我嘗試使用表單中創建新的實體。Symfony2中創建新的實體錯誤:NotFoundException

這對於創建形式和實體代碼 - CategoryController:

/** 
* Displays a form to create a new Category entity. 
* 
* @Route("/new", name="category_new") 
* @Method({"GET"}) 
*/ 
public function newAction(Request $request) 
{ 
    $entity = new Category(); 
    $form = $this->createCreateForm($entity); 


    return array(
     'entity' => $entity, 
     'form' => $form->createView(), 
    ); 
} 

/** 
* Creates a new Category entity. 
* 
* @Route("/", name="category_create") 
* @Method("POST") 
* @Template("AdminBundle:CategoryPanel:new.html.twig") 
*/ 
public function createAction(Request $request) 
{ 
    $entity = new Category(); 
    $form = $this->createCreateForm($entity); 
    $form->handleRequest($request); 

    if ($form->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 

     $em->persist($entity); 
     $em->flush(); 

     return $this->redirect($this->generateUrl('category_show', array('id' => $entity->getId()))); 
    } 

    return array(
     'entity' => $entity, 
     'form' => $form->createView(), 
    ); 
} 

/** 
* Creates a form to create a Category entity. 
* 
* @param Category $entity 
* 
* @return \Symfony\Component\Form\Form The form 
*/ 
private function createCreateForm(Category $entity, ServiceCategory $parentCategory = null) 
{ 
    $form = $this->createForm(CategoryType::class, $entity, array(
     'action' => $this->generateUrl('category_create'), 
     'method' => 'POST', 
     'parentCategory' => $parentCategory 
    )); 

    $form->add('submit', SubmitType::class, array(
     'label' => 'Create', 
     'attr' => array(
      'class' => "btn btn-primary" 
     ) 
    )); 

    return $form; 
} 

CategoryType

 public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('name', TextType::class, array('label' => 'Category name')); 

    $parentCategory = $options["parentCategory"]; 

    if($parentCategory != null){ 
     $builder->add('parent', 'entity', array(
      'class' => "CoreBundle:ServiceCategory", 
      'choices' => array($parentCategory) 
     )); 
    }else{ 
     $builder->add('parent', 'entity', array(
      'class' => "CoreBundle:ServiceCategory", 
      'query_builder' => function(ServiceCategoryRepository $cp){ 
       $qb = $cp->createQueryBuilder('c'); 
       return $qb; 
      }, 
     )); 
    } 

} 

爲什麼這個代碼是尋找實體時,我只是在嘗試創建它?

UPDATE

new.html.twig

{% extends 'AdminBundle:AdminPanel:base.html.twig' %} 

{% block body -%} 
<h1>Category creation</h1> 

{{ form_start(form) }} 
{{ form_row(form.name) }} 
{{ form_row(form.parent) }} 

<ul class="record_actions"> 
    <li style="display: inline-block"> 
     {{ form_widget(form.submit) }} 
    </li> 
    <li style="display: inline-block"> 
     <a href="{{ path('category_panel_index') }}"> 
      <button type="button" class="btn btn-primary"> 
       Back to the list 
      </button> 
     </a> 
    </li> 
</ul> 
{{ form_end(form) }} 

{%端塊%}

+0

沒有模板配置爲您的newAction。 – Alsatian

+0

@Alsatian我配置了我的模板,只是沒有包括它的問題。因爲錯誤與模板無關。 – blahblah

回答

1

這可能是多條路線之間有衝突,因爲它發生在我的情況。

你可能有一些其他的途徑可以使<>/new指向其他地方的一些其它控制器具有相似的路徑(動態varaibles)。

請您newAction控制器做var_dump檢查如果執行快到那裏。