Doctrine を実行するためのいくつかのチュートリアルに従っていますが、オブジェクトをデータベースに挿入しようとするとハングアップするようです。参考までに、これは私がフォローしていたものです: doctrine 2 tutorial
- Doctrine は application/libraries フォルダーにインストールされます
- Doctrine.php ブートストラップは application/libraries フォルダーにあります
- application/ フォルダーに cli.php ファイルが作成されます。
- チュートリアルでは、最初のエンティティ モデルをどこに配置するかを説明していなかったので、application/models に配置しました。
名前空間エンティティ。
use Doctrine\Common\Collections\ArrayCollection;
/**
* @Entity
* @Table(name="user")
*/
class User
{
/**
* @Id
* @Column(type="integer", nullable=false)
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @Column(type="string", length=32, unique=true, nullable=false)
*/
protected $username;
/**
* @Column(type="string", length=64, nullable=false)
*/
protected $password;
/**
* @Column(type="string", length=255, unique=true, nullable=false)
*/
protected $email;
/**
* The @JoinColumn is not necessary in this example. When you do not specify
* a @JoinColumn annotation, Doctrine will intelligently determine the join
* column based on the entity class name and primary key.
*
* @ManyToOne(targetEntity="Group")
* @JoinColumn(name="group_id", referencedColumnName="id")
*/
protected $group;
}
/**
* @Entity
* @Table(name="group")
*/
class Group
{
/**
* @Id
* @Column(type="integer", nullable=false)
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @Column(type="string", length=32, unique=true, nullable=false)
*/
protected $name;
/**
* @OneToMany(targetEntity="User", mappedBy="group")
*/
protected $users;
}
- 問題なくデータベースに私のスキーマを作成しました: php cli.php orm:schema-tool:create
- 「Doctrine の使用」設定で最後のステップを取得しました
コントローラーで次のコードを使用してみましたが、エラーが発生しました
$em = $this->doctrine->em; $user = new models\User; $user->setUsername('Joseph'); $user->setPassword('secretPassw0rd'); $user->setEmail('josephatwildlyinaccuratedotcom'); $em->persist($user); $em->flush();
プロデュース
Fatal error: Class 'models\User' not found in C:\wamp\www\ci\application\controllers\Home.php on line 11
私の唯一の考えは、私がウィンドウにいるため、またはエンティティモデルを間違った場所に置いたため、パスに何かがある可能性があるということです。