2017-08-10 14 views
-1

enter image description here变量“url_resources”不存在。在这里,我试图显示刚刚输入的表单的值。它总是给我带来同样的错误。我希望它能显示在同一页面上,而不会导航到不同的页面。我已经创建了3个文本框来显示相应的文件,正如您在代码中看到的那样。变量“url_resources”不存在。这里我试图显示刚才输入的表格的值

控制器

<?php 

namespace UrlResourceBundle\Controller; 

use UrlResourceBundle\Entity\url_resources; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpFoundation\Response; 

use Symfony\Component\Form\Extension\Core\Type\TextType; 
use Symfony\Component\Form\Extension\Core\Type\TextareaType; 
use Symfony\Component\Form\Extension\Core\Type\DateTimeType; 
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; 
use Symfony\Component\Form\Extension\Core\Type\SubmitType; 

class DefaultController extends Controller 

{ 
    /** 
    * @Route("/", name="todo_list") 
    */ 
    public function listAction() 
    { 

    $urls_resources = $this->getDoctrine() 
     ->getRepository('UrlResourceBundle:url_resources') 
     ->findAll(); 

     return $this->render('todo/index.html.twig', array(
'urls_resources' => $urls_resources 
      )); 
    } 

    /** 
    * @Route("/todo/create", name="todo_create") 
    */ 
    public function createAction(Request $request) 
    { 

     $url_resources = new url_resources; 
     $form = $this->createFormBuilder($url_resources) 




      ->add('title', TextType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) 
      ->add('url', TextType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) 
      ->add('description', TextType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) 


      ->add('save', SubmitType::class, array('label' => "Create",'attr' => array('class' => 'btn btn-primary', 'style' => 'margin-bottom:15px'))) 





      ->getForm(); 




     $form->handleRequest($request); 

     if($form->isSubmitted() && $form->isValid()) 





     { 




//Get Data 
      $title = $form['title']->getData(); 
      $url = $form['url']->getData(); 
      $description = $form['description']->getData(); 





      $url_resources->setTitle($title); 
      $url_resources->setUrl($url); 
      $url_resources->setDescription($description); 


      $em = $this->getDoctrine()->getManager(); 
      $em->persist($url_resources); 
      $em->flush(); 









      $this->addFlash(
        'notice', 
        'Entry Created' 
       ); 








return $this->redirectToRoute('todo_create'); 

return $this->redirect($request->getUri()); 

     } 
     return $this->render('todo/create.html.twig', array(
       'form' => $form->createView() 
      )); 
    } 

    /** 
    * @Route("/todo/edit/{id}", name="todo_edit") 
    */ 
    public function editAction($id, Request $request) 
    { 

     $url_resources = $this->getDoctrine() 
     ->getRepository('UrlResourceBundle:url_resources') 
     ->find($id); 





      $url_resources->setTitle($url_resources->getTitle()); 
      $url_resources->setUrl($url_resources->getUrl()); 
      $url_resources->setDescription($url_resources->getDescription()); 




     $form = $this->createFormBuilder($url_resources) 


      ->add('title', TextType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) 
      ->add('url', TextType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) 
      ->add('description', TextareaType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) 
      ->add('save', SubmitType::class, array('label' => "Update",'attr' => array('class' => 'btn btn-primary', 'style' => 'margin-bottom:15px'))) 

      ->getForm(); 


     $form->handleRequest($request); 

     if($form->isSubmitted() && $form->isValid()) 
     { 

//Get Data 
      $title = $form['title']->getData(); 
      $url = $form['url']->getData(); 
      $description = $form['description']->getData(); 



      $em = $this->getDoctrine()->getManager(); 
      $url_resources = $em->getRepository('UrlResourceBundle:url_resources')->find($id); 

      $url_resources->setTitle($title); 
      $url_resources->setUrl($url); 
      $url_resources->setDescription($description); 






      $em->flush(); 







      $this->addFlash(
        'notice', 
        'Entry Updated' 




       ); 
return $this->redirectToRoute('todo_list'); 

     } 

     return $this->render('todo/edit.html.twig', array(
'url_resources' => $url_resources, 
'form' => $form->createView() 
)); 
    } 

    /** 
    * @Route("/todo/details/{id}", name="todo_details") 
    */ 
    public function detailsAction($id) 
    { 

      $url_resources = $this->getDoctrine() 
     ->getRepository('UrlResourceBundle:url_resources') 
     ->find($id); 

     return $this->render('todo/details.html.twig', array(
'url_resources' => $url_resources 

)); 
    } 


    /** 
    * @Route("/todo/delete/{id}", name="todo_delete") 
    */ 
    public function deleteAction($id) 
    { 

      $em = $this->getDoctrine()->getManager(); 
      $url_resources = $em->getRepository('UrlResourceBundle:url_resources')->find($id); 

      $em->remove($url_resources); 
      $em->flush(); 

      $this->addFlash(
        'notice', 
        'Entry deleted'); 


        return $this->redirectToRoute('todo_list'); 

     } 




    } 

嫩枝

{% extends 'base.html.twig' %} 
{% block body %} 

<h2 class="page-header">Create</h2> 
{{form_start(form)}} 
{{form_widget(form)}} 

<ul class="list-group"> 
<li class="list-group-item">Title: {{url_resources.title}}</li> 
<li class="list-group-item">URL: {{url_resources.url}}</li> 
<li class="list-group-item">Description: {{url_resources.description}}</li> 
</ul> 

{{form_end(form)}} 
{% endblock %} 
+1

你能给出确切的错误信息吗?我们不知道它在哪里发生 –

+0

我已添加错误的屏幕截图...请参阅问题的顶部..谢谢... – jcoder

回答

0

当然IT方面取消定义,因为你没有过时了,

通过它来渲染

return $this->render('todo/create.html.twig', array(
      'form' => $form->createView(), 
      'url_resources' => $your variable name 
     )); 
+0

现在错误消失..但窗体值不显示在下面的框中(在树枝中声明的框)。即标题,网址和说明字段在网页中是空的... – jcoder

+0

这是另一个错误,请将答案标记为已解决并打开另一个问题 –