我尝试在Symfony控制器中使用另一个Bundle的实体:
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
这与真正不存在的对象(如neighborx)不同,它抛出500错误:
Acme'TestBundle'Entity'Neighbour does not exist
对象存在,它应该可以工作,因为这可以工作:
use Acme'TestBundle'Entity'Neighbour;
use AppBundle'Entity'Home;
class TestController extends Controller {
public function testAction(Home $home) {
$thread = new ForumThread();
}
}
好吧,我自己已经找到答案了。我必须指定route变量:
/home/{id}/neighbour/{nid} #before
/home/{id}/neighbour/{neighbour} #after
但是我不能完全理解它。为什么{id}不一定是{home}?{id}是默认的第一个参数id吗?