我的参数转换器有问题。
这些是我的路线:
CrmBundle routing.yml:
crm_partner:
resource: "@PartnerBundle/Resources/config/routing.yml"
prefix: /{urlname}
PartnerBundle routing.yml:
crm_partner_dashboard:
path: /dashboard
defaults: { _controller: PartnerBundle:Default:dashboard }
PartnerBundle DefautController:
/*
* @ParamConverter("department", options={"mapping":{"urlname":"urlName"}})
*/
public function dashboardAction(Department $department)
{
...
}
这是我的错误:
Unable to guess how to get a Doctrine instance from the request information for parameter "department".
这是我的请求属性。...
_controller
"PartnerBundle\Controller\DefaultController::dashboardAction"
_firewall_context "security.firewall.map.context.main"
_locale "fr"
_route "crm_partner_dashboard"
_route_params "urlname" => "shbyjm-europe-1"
"_locale" => "fr"
urlname "shbyjm-europe-1"
您对此有解释吗?
最诚挚的问候
答案 0 :(得分:0)
您还需要在此处添加课程。那是你的问题。检查我的代码。
class PostsController extends Controller
{
/**
* @param Post $post
* @ParamConverter("post", class="AppBundle\Entity\Post")
* @return Response
*/
public function showAction(Post $post): Response
{
if (!isset($post)) {
throw $this->createNotFoundException('Post with the provided route not found!');
}
return $this->render(
'@App/pages/post.html.twig',
[
'post' => $post
]
);
}
}
因此,由于您没有传递类完整名称空间名称。
,这使您无法猜测,从而引发错误。答案 1 :(得分:0)
感谢您的帮助。
为了使我的代码成功,我创建了自己的ParamConverter,现在它可以完美运行。
我认为问题在于我的参数位于路由的第一级,并且没有正确使用或查找。
无论如何,再次感谢