Symfony2とMySQLで主要なキーを生成します
-
25-10-2019 - |
質問
Symfony2/Doctrine2で主要なキーを自動的に生成する方法は?
私はすべてのエンティティとデータベースを作成しています。
Symfony2コントローラーでは、
<?php
/**
* @Route("/myroute", name="myroute")
* @Template()
*/
public function myrouteAction()
{
/* Page de Création d'un retrait ou d'une réexpédition. */
$obj = new Utilisateur();
$obj->setUsermail('contact@mydomain.com');
$obj->setUserpass('coucou');
$obj->setUservalide('1');
$em = $this->getDoctrine()->getEntityManager();
$em->persist($obj);
$em->flush();
// [...]
}
テスト用です。すべてが正しくなったのは初めてでした(功利機関のテーブルは空でした)。さて、この関数をもう一度呼び出すと、次のようになります。
SQLSTATE [23000]:整合性制約違反:1062キーのための重複エントリ '0' '500内部サーバーエラー-PDOEXCEPTION
symfony-doctrine-mysqlに識別子を自動的にインクリメントしたいだけです。
解決
うまくいけば、これが役立つことを願っています。注釈と教義ORMを使用していると仮定すると、ドキュメントからオブジェクトに自動的に戦略を設定する必要があります(ドキュメントから)http://symfony.com/doc/current/book/doctrine.html)
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
--> * @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
オブジェクトを変更した後、データベーススキーマを更新することを忘れないでください。
所属していません StackOverflow