2016-06-29 10 views
0

私はsymfonyのコントローラ内の別のバンドルのエンティティを使用しよう:教義エンティティ

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

class TestController extends Controller { 

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

     // 
    } 
} 

が、これは404エラーがスローされます。

Acme\TestBundle\Entity\Neighbour object not found 

これはとは異なっていますNeighbourXのような実際のオブジェクトではないので、そこに500エラーがスローされます:

Acme\TestBundle\Entity\Neighbour does not exist 

オブジェクトeそれはうまくいくはずです:

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

class TestController extends Controller { 

    public function testAction(Home $home) { 

     $thread = new ForumThread(); 
    } 
} 

答えて

0

私は既に自分自身で答えを見つけました。

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

しかし、私はそれを完全に理解していません。なぜ{id}は{home}でなければならないのですか? {id}はデフォルトで最初のparameter-idですか?

なぜ、エラーメッセージが誤解を招くのですか。

+0

私は、パラメータ名がルートで指定されたものと同じでなければならないと考えています。 – Splendonia

+0

そうだと思いますが、なぜ{id}と$ homeが一緒に働いていますか? Btw、それはCRUDがsymfonyによって自動的に作成された方法です – Asara