0

我正在尝试插入具有外键的表中,但出现以下错误:

传递给 App\Entity\Builds::__construct() 的参数 4 必须是 App\Entity\Usuarios 的实例,int 给定

我知道作为 id 的外键必须是 INT,但错误告诉我它必须是 App\Entity\Users 的实例。

代码:

public function guardarBuild(Request $request): JsonResponse
    {
        $data = $request->request->all();
        $this->controlSesion();
        $entityManager = $this->getDoctrine()->getManager();
        $session = new Session();
        $idUsu = $entityManager->getRepository(Usuarios::class)->findOneBy(['usuario' => $session->get('usuario'), 'password' => $session->get('password')]);
        $idUsuario = $idUsu->getId(); 
        $nuevaBuild = new Builds(
            $data['nombre'], 
            $data['descripcion'], 
            0, 
            $idUsuario //foreign key
        );
        $this->getDoctrine()->getManager()->persist($nuevaBuild);
        $this->getDoctrine()->getManager()->flush();
        return new JsonResponse(['status' => 'Build creada'],Response::HTTP_CREATED);
    }
4

1 回答 1

0

Doctrine建议不要使用硬外键值来管理实体关联,而是建议使用对象引用。Aka,Builds::__construct期望一个Usuarios实例作为它的第四个参数,而不是一个(外键)int值。

于 2021-03-27T22:46:08.477 回答