@ParamConverter注释找不到实体对象



我在以前工作的控制器中遇到了这个错误。

我添加了一些新的控制器(带有不同的路由前缀(,所以我想错误可能来自生成的那些新路由,但老实说,我很困惑这个错误怎么会出现在一个长期不变的控制器中。

这是我的控制器代码:

ContractController.php

/**
* @Route("/contract")
*/
class ContractController extends AbstractController
{
/**
* @Route("/edit/{id}", name="contract_edit", methods={"GET","POST"})
*/
public function edit(Request $request, DocumentManagerService $dm, EventDispatcherInterface $dispatcher, Contract $contract): Response
{
}

我在访问/contract/edit/1234:时收到此错误

@ParamConverter注释未找到App\Entity\Contract对象。

如果我添加@ParamConverter注释,如下所示:

* @ParamConverter("contract", options={"mapping": {"id"   : "id"}})

我也犯了同样的错误。同样的错误发生在同一控制器中的其他路由上,正如我所说的,它们以前都在工作。

如果我在控制台中debug:router,我会得到前缀为/contract的命中,所有命中都在这个控制器中。

contract_debug                     GET        ANY      ANY    /contract/debugcontract/show/{id}                                                 
contract_debug_edit                GET|POST   ANY      ANY    /contract/debugcontract/edit/{id}                                                 
contract_debug_renew               GET|POST   ANY      ANY    /contract/debugcontract/renew/{id}                                                
contract_index                     GET        ANY      ANY    /contract/list                                                                    
contract_new                       GET|POST   ANY      ANY    /contract/new/{client_id}                                                         
contract_edit                      GET|POST   ANY      ANY    /contract/edit/{id}                                                               
contract_add_payment               GET|POST   ANY      ANY    /contract/addpayment/{id}/{renew}/{cardid}                                        
contract_payment_delete            GET        ANY      ANY    /contract/deletepayment/{id}                                                      
contract_show                      GET        ANY      ANY    /contract/show/{id}                                                               
contract_send_and_block            GET        ANY      ANY    /contract/send/{id}                                                               
contract_protect                   GET        ANY      ANY    /contract/protect/{id}/{protect}                                                  
contract_generate_invoice          GET        ANY      ANY    /contract/invoice/{id}/{send}

我发现了这个错误,它与路由无关。

我为这个实体创建了一个新的ContractRepository类,并复制/粘贴了基本代码,结果是:

class ContractRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Client::class);
}
}

我正在向构造函数发送另一个实体类,它应该是Contract,而不是Client

最新更新