symfonyのバージョン:3.1.3symfonyの3:データベース内のDoctrine店NULL値
私は以下のようなコントローラを持って、それが与える
if($form->isSubmitted() && $form->isValid())
{
$parent = $form['parent']->getData(); // the parentID
$cName = $form['class']->getData();
$classID= $cName->getId(); // the classID
echo $parent . '/' . $classID . '/' . $id;
die;
// ...
私が実行した場合さらに
public function studentAddClassAction($id, Request $request)
{
$em = $this->getDoctrine()->getManager();
$student= new Student();
// new class object and create the form
$classes= $em->getRepository('PIE10Bundle:Classes')->findAll();
$form = $this->createForm(ClassType::class, $classes);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid())
{
$parent = $form['parent']->getData(); // the parentID
$cName = $form['class']->getData();
$classID= $cName->getId(); // the classID
//insert new row to the student table
$student->setParentId($parent);
$student->setClassId($classID);
$student->setUserId($id);
$em->persist($student);
$em->flush();
$this->addFlash('notice',
'Student Updated');
return $this->redirectToRoute('user_students');
}
// some other code
}
、期待値 - 例の場合17/6/5
または関連する結果が正しく表示されていることを意味します。$parent
、$classID
、条件
に10しかし、私は、
$student->setParentId($parent);
$student->setClassId($classID);
$student->setUserId($id);
$em->persist($student);
$em->flush();
を使用してそれらを挿入しようとすると、それがためにNULL値で
に以下のような行を保存しますclassIdおよびuserIdの列ですが、PARENTIDとsetterメソッドは、学生エンティティ
public function setParentId($parentId)
{
$this->parentId = $parentId;
return $this;
}
public function setClassId($classId)
{
$this->classId = $classId;
return $this;
}
public function setUserId($userId)
{
$this->userId = $userId;
return $this;
}
に以下の通りですこれは私のために少し奇妙で、この問題を解決します。他の開発者情報が必要な場合はお知らせください。
おかげ
更新
class Student
{
/**
*
* @ORM\ManyToOne(targetEntity="Classes", inversedBy="student")
* @ORM\JoinColumn(name="classId", referencedColumnName="id")
*/
private $classes;
/**
* Get classes
*
* @return \PIE10Bundle\Entity\Classes
*/
public function getClasses()
{
return $this->classes;
}
/**
* @ORM\OneToOne(targetEntity="Users", inversedBy="student")
* @ORM\JoinColumn(name="userId", referencedColumnName="id")
*/
private $users;
/**
* @var int
*
* @ORM\Column(name="userId", type="integer", nullable=true)
*/
private $userId;
/**
* @var int
*
* @ORM\Column(name="id", type="integer", unique=true)
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Id
*/
private $id;
/**
* @var int
*
* @ORM\Column(name="parentId", type="integer")
*/
private $parentId;
/**
* @var int
*
* @ORM\Column(name="classId", type="integer", nullable=true)
*/
private $classId;
エンティティプロパティの注釈を表示できますか? –
@alex_kalenyuk注釈の更新セクションを確認してください。 – mapmalith
$ student-> setClassId(5)のようなものを試しましたか? –