[Примечание] Im только обучение и учение Symfony 3.Ассоциация Mapping Не Рабочая доктрина использованием Symfony
Спросите: Что бы отношение к моей доктрине, если:
Company
У меня есть сущность, и я хочу связать это до Sub_agent
объекта.
Пользователь будет выполнять добавление/изменение/удаление из моего объекта Company
, то же самое касается моего объекта Sub_agent
. В моей форме Sub_agent
есть выпадающий список для Company
, где пользователь должен выбрать, чтобы связать sub_agent с компанией.
Company
Entity
-------------
| id | name |
--------------
| 1 | ABCD |
| 2 | EFGH |
-------------
Sub-Agent
Entity
------------------------------------
| id | sub_agent_name | company_id |
-------------------------------------
| 1 | ABAKADA | 1 |
| 2 | EGAHA | 2 |
------------------------------------
записи пользователя: субагент стол
----------------------
id | Name | Company|
-----------------------
1 | ABAKADA | ABCD |
2 | EGAHA | EFGH |
----------------------
То, что я есть,
UPDATE МОЙ КОД
субагент Entity
namespace SwipeBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Sub_agent
*
* @ORM\Table(name="sub_agent")
* @ORM\Entity(repositoryClass="SwipeBundle\Repository\Sub_agentRepository")
*/
class Sub_agent
{
/**
* Many Sub-agents have One Company.
* @ORM\ManyToOne(targetEntity="Company", inversedBy="sub_agent")
* @ORM\JoinColumn(name="company_id", referencedColumnName="id")
*/
private $companyId;
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return Sub_agent
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set companyId
*
* @param string $companyId
*
* @return Sub_agent
*/
public function setCompanyId($companyId)
{
$this->companyId = $companyId;
return $this;
}
/**
* Get companyId
*
* @return string
*/
public function getCompanyId()
{
return $this->companyId;
}
}
Компания Entity
namespace SwipeBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Company
*
* @ORM\Table(name="company")
* @ORM\Entity(repositoryClass="SwipeBundle\Repository\CompanyRepository")
* @ORM\HasLifecycleCallbacks()
*/
class Company
{
/**
* @ORM\OneToMany(targetEntity="Sub_agent", mappedBy="companyId")
*/
protected $sub_agent;
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=100)
*/
private $name;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return Company
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
}
До сих пор не работает, я обновить свой код выше и поместить свой код, я обновляю также ошибку я сталкиваюсь. – phpmeter
Я обновляю свой код снова, ту же ошибку: '[Doctrine \ DBAL \ Exception \ DriverException] Исключение произошло при выполнении 'ALTER TABLE sub_agent ADD CONSTRAINT FK_CACFF824979B1AD6 FOREIGN KEY (company_id) ССЫЛКИ company (id)': SQLSTATE [HY000] : Общая ошибка: 1215 Невозможно добавить ограничение внешнего ключа ' – phpmeter
Hi То же, что и ошибка; Я также обновляю свой код так же, как вы сказали. Благодарю вас, '[Doctrine \ DBAL \ Exception \ DriverException] Исключение произошло при выполнении 'ALTER TABLE sub_agent ADD CONSTRAINT FK_CACFF824979B1AD6 FOREIGN KEY (company_id) ССЫЛКИ company (id)': SQLSTATE [HY000]: Общая ошибка: 1215 Невозможно добавить ограничение внешнего ключа' – phpmeter