Php 找不到具有Symfony 5.1的实体

Php 找不到具有Symfony 5.1的实体,php,symfony,class,doctrine-orm,entity,Php,Symfony,Class,Doctrine Orm,Entity,我与一个实体有问题。 目标是显示一个表单,用户可以使用该表单更改其个人信息,如电子邮件或密码。我为此创建了一个表单,但是当我创建/Edit路由时,我得到了以下错误: “@ParamConverter注释找不到App\Entity\Users对象。” 这是我的控制器: 订单问题。特别是在没有要求的路由时。您有以下路线(更新:添加了前缀,谢谢@Cerad!): 现在,当您请求uri/users/edit时,UrlMatcher将迭代您的路由以查看是否匹配以及匹配的内容,并在第一次匹配时停止 /use

我与一个实体有问题。 目标是显示一个表单,用户可以使用该表单更改其个人信息,如
电子邮件
密码
。我为此创建了一个表单,但是当我创建
/Edit
路由时,我得到了以下错误:

“@ParamConverter注释找不到App\Entity\Users对象。”

这是我的控制器:


订单问题。特别是在没有要求的路由时。您有以下路线(更新:添加了前缀,谢谢@Cerad!):

现在,当您请求uri
/users/edit
时,UrlMatcher将迭代您的路由以查看是否匹配以及匹配的内容,并在第一次匹配时停止

/users/
显然不匹配
/users/{id}
确实匹配,因为
{id}
允许是任何字母数字字符串(+几个额外的字符),并且
edit
匹配该字符串,从而导致
users\u show
路由,在该路由上,
User
对象不能由id确定“编辑”。因此,出现错误消息。解决这一问题的一种方法是向路由匹配添加要求-假设id仅为数字:

/**
 * @Route("/{id}", ..., requirements={"id":"\d+"})
 */

我也同意@Cerad的观点,即
用户
对于一个实体来说是一个非常糟糕的名字。它们通常是单数形式。

只是为了澄清,您所说的是/users/{id}show方法,而不是/users/edit路径?您好,我说的是/users/edit方法您发布的代码根本没有使用$users显示editProfile方法。它只适用于当前用户。因此我的问题是,我想让它在当前的在线用户上工作是的,editProfile方法在第一次粘贴时;)我看到的代码显示$users被注入show方法,而不是editProfile方法。哦,好吧。希望其他人能理解。并且完全脱离主题,但是将用户实体的名称更改为User,这样可以避免将来的大量混淆。实际上,控制器上有/Users前缀,因此它们的路由看起来像/Users/id和/Users/edit。非常确定他们需要做的就是将编辑路由更改为/users/edit/id,然后将users-typehint添加到editProfile方法中。但有一个明显的沟通中断。但是是的,顺序确实很重要,他们应该有一个/users/show/id方法或者添加一个条件。你对前缀的看法是对的,但我的观点没有改变。修改了答案。我不确定我是否同意/users/{id}/edit,因为他只希望用户自己修改它们。现在我明白了。错误来自尝试加载id为“edit”的用户,因为show方法与editProfile方法相匹配。问题解决了,解决方案是更改方法的顺序,只需将user_show与user_edit切换,效果很好,我还将实体“Users”的名称更改为“user”。谢谢你,雅库米
/users/     users_index
/users/{id} users_show
/users/edit users_edit
/**
 * @Route("/{id}", ..., requirements={"id":"\d+"})
 */