我尝试做的是在一个文件中有两个用户类,在另一个文件中有两个用户视频。我的任务是做数据库,用户必须登录,之后他可以上传视频。该视频具有实体$ uploaded_by,并且应该从User类获取$ id。
User.php:
<?php
// src/User.php
namespace Db;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity @ORM\Table(name="user")
**/
class User
{
/**@ORM\Id @ORM\Column(type="integer") **/
protected $id;
/** @ORM\Column(type="string") **/
protected $name;
/** @ORM\Column(type="datetime") **/
protected $created_at;
/** @ORM\Column(type="datetime", nullable=true) **/
protected $last_login;
Video.php:
<?php
// src/Video.php
namespace Db;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity @ORM\Table(name="video")
**/
class Video
{
/** @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue **/
protected $id;
/** @ORM\Column(type="string") **/
protected $name;
/** @ORM\Column(type="datetime") **/
protected $created_at;
/**
* @OneToOne(targetEntity="User")
* @JoinColumn(name="user_id", referencedColumnName="id")
* @ORM\Column(type="integer") **/
protected $uploaded_by;
/** @ORM\Column(type="integer", nullable=true) **/
protected $deleted;
当我尝试使用
更新Doctrine中的ORM模式时$ vendor/bin/doctrine orm:schema-tool:update --force --dump-sql
结果是:
In MappingException.php line 52:
No identifier/primary key specified for Entity "Db\User". Every Entity
must
have an identifier/primary key.
答案 0 :(得分:2)
尝试改变这个:
/**@ORM\Id @ORM\Column(type="integer") **/
protected $id;
到此:
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;