2016-06-29 10 views
0

Ich versuche, die Entity eines anderen Bundle in meinen Symfony-Controller zu verwenden:Lehre Entity von anderen Bundle in Symfony-Controller

use Acme\TestBundle\Entity\Neighbour; 
use AppBundle\Entity\Home; 

class TestController extends Controller { 

    public function testAction(Home $home, Neighbour $neighbour) { 

     // 
    } 
} 

aber dies löst ein 404 Fehler:

Acme\TestBundle\Entity\Neighbour object not found 

dies ist anders ein real nicht existierendes Objekt wie NeighbourX, dort löst es einen 500er Fehler aus:

Das Objekt e xists, und es sollte funktionieren, weil dies funktioniert:

use Acme\TestBundle\Entity\Neighbour; 
use AppBundle\Entity\Home; 

class TestController extends Controller { 

    public function testAction(Home $home) { 

     $thread = new ForumThread(); 
    } 
} 

Antwort

0

Ok Ich fand die Antwort schon selbst. Ich musste die Route Variable angeben:

/home/{id}/neighbour/{nid} #before 
/home/{id}/neighbour/{neighbour} #after 

Aber ich verstehe es nicht vollständig. Warum muss {id} nicht {home} sein? Ist {id} standardmäßig nur die erste Parameter-ID?

Und warum ist die Fehlermeldung so irreführend ..

+0

Ich glaube, die Parameternamen müssen die gleichen wie die in der Route angegeben werden. – Splendonia

+0

sollte es so sein, aber warum arbeiten {id} und $ home zusammen? Übrigens, so wurde die CRUD automatisch von Symfony erstellt – Asara