cop*_*ndz 18 php symfony doctrine-orm
我有这个"500内部服务器错误 - LogicException:无法猜测如何从请求信息中获取Doctrine实例 ".
这是我的控制器的动作定义:
/**
* @Route("/gatherplayer/{player_name}/{gather_id}")
* @Template()
*/
public function createAction(Player $player, Gather $gather)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
并且它不起作用,可能是因为Doctrine 2无法"猜测"......所以我如何让Doctrine 2猜测,好吧?
Azr*_*Azr 30
Doctrine不知道如何使用请求参数来查询函数签名中指定的实体.
您需要通过指定一些映射信息来帮助它:
/**
* @Route("/gatherplayer/{player_name}/{gather_id}")
*
* @ParamConverter("player", options={"mapping": {"player_name" : "name"}})
* @ParamConverter("gather", options={"mapping": {"gather_id" : "id"}})
*
* @Template()
*/
public function createAction(Player $player, Gather $gather)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
cop*_*ndz 10
/**
* @Route("/gatherplayer/{name}/{id}")
* @Template()
*/
public function createAction(Player $player, Gather $gather)
Run Code Online (Sandbox Code Playgroud)
我没有在paramconverter(穷人?)文档中找到任何帮助,因为它没有描述它如何工作,它如何猜测多个参数和东西.另外我不确定它是否需要,因为我刚写的内容正常.
我的mystake不是使用我的attributs的名字所以教义无法猜对.我将{player_name}更改为{name},将{gather_id}更改为{id}.
然后我将我的id中的id的名称从"id"更改为"id_gather"和"id_player",所以我现在能够这样做:
/**
* @Route("/gatherplayer/{id_player}/{id_gather}")
* @Template()
*/
public function createAction(Player $player, Gather $gather)
Run Code Online (Sandbox Code Playgroud)
这比有效得多
* @Route("/gatherplayer/{id}/{id}")
Run Code Online (Sandbox Code Playgroud)
现在我想知道如何才能做到这一点
/**
* @Route("/gatherplayer/{player}/{gather}")
* @Template()
*/
public function deleteAction(Gather_Player $gather_player)
Run Code Online (Sandbox Code Playgroud)
尝试这个:
/**
* @Route("/gatherplayer/{player_name}/{gather_id}")
* @ParamConverter("player", class="YourBundle:Player")
* @ParamConverter("gather", class="YourBundle:Gather")
* @Template()
*/
public function createAction(Player $player, Gather $gather)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
31914 次 |
最近记录: |