0
我使用Symfony和Doctrine,並嘗試將數據插入數據庫。在我的表messages
中有一列user_id
,它被設置爲users.id
的外鍵。 在我Message
entitity有此setter爲user_id
使用Doctrine和Symfony插入到DB中 - 外鍵不會插入
/**
* @ORM\Entity
* @ORM\Table(name="Messages")
*/
class Message {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="user_id", type="integer")
*/
protected $user_id;
/**
* @ORM\Column(name="text", type="text")
*/
protected $text;
/**
* @ORM\ManyToOne(targetEntity="User")
* */
protected $user;
public function setText($text) {
$this->text = $text;
}
public function getText() {
return $this->text;
}
public function setUserId($user_id) {
$this->user_id = $user_id;
}
public function getUser_id() {
return $this->user_id;
}
public function getUser() {
return $this->user;
}
}
但是它不會插入傳遞給我的二傳手,但NULL
變量。每個其他colums都填充了正確的數據,而插入只是這一個不是。我想這與外鍵有關(表users
中有適當的數據)。控制器代碼
部分:
if ($request->getMethod() == 'POST') {
$form->bind($request);
if ($form->isValid()) {
if ($isLogged) {
$user = $this->get('security.context')->getToken()->getUser();
$message->setUserId($user->getId());
}
$em->persist($message);
$em->flush();
當我改變二傳手這個它的正確插入:
public function setUserId($user_id) {
$this->random_column_which_is_not_foreignkey = $user_id;
}
有什麼不對?謝謝
請與代碼是堅持實體 – skrilled
我增加了一些更多的代碼 – simPod