2016-07-18 35 views
1

Ich möchte Crud für alle meine Entitäten von meinem Controller neu generieren, sobald ich bestimmte URL eingeben. Im folgenden Beispiel wird ein Befehl für nur eine Entität zu Demonstrationszwecken ausgeführt. Wenn ich zum Pfad '/ reCrud' navigiere, dreht sich mein Browser für immer, aber der Befehl wird nie ausgeführt. Was ziemlich interessant ist, ist, dass der gleiche Code, wenn ich stattdessen "cache: clear" ausführe, gut läuft.Symfony - Wie Crud für Entity von einem Controller zu regenerieren

<?php 

namespace AdminBundle\Controller; 
use Symfony\Bundle\FrameworkBundle\Console\Application; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\Console\Input\StringInput; 
use Symfony\Component\Console\Output\BufferedOutput; 
use Symfony\Component\HttpFoundation\Response; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 

class CrudController extends Controller 
{ 
    /** 
    * @Route("/reCrud") 
    */ 
    public function reCrudAction() 
    { 
     $kernel = $this->get('kernel'); 
     $application = new Application($kernel); 
     $application->setAutoExit(false); 

     $input = new StringInput('doctrine:generate:crud AdminBundle:Klient --overwrite --no-debug'); 
     // You can use NullOutput() if you don't need the output 
     $output = new BufferedOutput(); 
     $application->run($input, $output); 

     // return the output, don't use if you used NullOutput() 
     $content = $output->fetch(); 

     // return new Response(""), if you used NullOutput() 
     return new Response($content); 
    } 
} 

Vielleicht ist dies nur ein Problem bei der Konfiguration der Umgebung. Fühlen Sie sich frei, diesen Code zu zerschlagen und auf Ihrem Rechner zu testen. Lass es mich wissen, ob es funktioniert oder nicht.

Antwort

1

Es dreht sich, weil unter ihm wartet auf Sie Sachen ein:

Welcome to the Doctrine2 CRUD generator 



This command helps you generate CRUD controllers and templates. 

First, give the name of the existing entity for which you want to generate a CRUD 
(use the shortcut notation like AcmeBlogBundle:Post) 

The Entity shortcut name [AdminBundle:Klient]: 


Lösung:

Versuchen Hinzufügen -n Option, die ist:

-n, --no-interaction    Do not ask any interactive question 

So in Das Ende Ihres Befehls wäre etwa so:

doctrine:generate:crud --entity=AdminBundle:Klient --overwrite --no-debug --no-interaction 
+0

Großartig! Danke. Ich musste auch "--entity =" hinzufügen, bevor es funktionierte, aber Sie haben es gelöst. Vielen Dank. Sie können Ihre Anser wie folgt bearbeiten: Doktrin: generieren: Crud --entity = AdminBundle: Klient - Überschreiben - keine-Debug - keine Interaktion – DevWL

+0

@ Fox sicher, danke – pavlovich