doctrine의 외래 키에 문제가 있습니다. "사용자"표와 "주문"표가 있습니다. 이제 orders-table의 userID에서 user-table의 id에 외래 키를 갖고 싶습니다. Doctrine 외래 키 작성
<?php
namespace Application\TestBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(
* name="User",
* options={"collate"="utf8_general_ci",
* "charset"="utf8",
* "engine"="InnoDB"
* }
*)
* @ORM\Entity(repositoryClass="Application\TestBundle\Entity\UserRepository")
*/
class User
{
/**
* @var integer
*
* @ORM\Column(
* name="id",
* unique=true,
* type="integer",
* options={"unsigned"=true}
*)
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
// ...
}
불행하게도
에는 외래 키가를 설정되지 않습니다 : 같은 사용자 단체가 보이는
<?php
namespace Application\TestBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(
* name="Orders",
* options={"collate"="utf8_general_ci",
* "charset"="utf8",
* "engine"="InnoDB"
* }
*)
* @ORM\Entity(repositoryClass="Application\TestBundle\Entity\OrdersRepository")
*/
class Orders
{
/**
* @var integer
*
* @ORM\Column(
* name="id",
* unique=true,
* type="integer",
* options={"unsigned"=true}
*)
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(
* name="userID",
* type="integer",
* nullable=false,
* options={"unsigned"=true}
*)
* @ORM\OneToOne(targetEntity="User")
* @ORM\JoinColumn(name="userID", referencedColumnName="id")
*/
private $userID;
// ...
}
: 같은 주문 엔티티 보인다. 그것은 SQL 쿼리에 없습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
엔티티를 어떻게 유지합니까? 컨트롤러 액션에서 관련 * 부분을 붙여 넣을 수 있습니까? –
내 업데이트 된 질문보기 – user3631654