Nik*_*ole 90 php mysql doctrine-orm
我想在学说中做复合唯一键.那些是我的领域:
/**
* @var string $videoDimension
*
* @Column(name="video_dimension", type="string", nullable=false)
*/
private $videoDimension;
/**
* @var string $videoBitrate
*
* @Column(name="video_bitrate", type="string", nullable=false)
*/
private $videoBitrate;
Run Code Online (Sandbox Code Playgroud)
我如何展示学说,那些结合在一起的是复合的唯一关键?
Nik*_*ole 198
回答问题:
use Doctrine\ORM\Mapping\UniqueConstraint;
/**
* Common\Model\Entity\VideoSettings
*
* @Table(name="video_settings",
* uniqueConstraints={
* @UniqueConstraint(name="video_unique",
* columns={"video_dimension", "video_bitrate"})
* }
* )
* @Entity
*/
Run Code Online (Sandbox Code Playgroud)
BBe*_*eta 52
如果有人想使用PHP 8 属性而不是 Doctrine 注释:
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ORM\UniqueConstraint(
name: 'video_unique_idx',
columns: ['video_dimension', 'video_bitrate']
)]
Run Code Online (Sandbox Code Playgroud)
luc*_*nov 17
我发现它只对use
ORM 更加冗长,然后ORM
在注释中添加前缀.另请注意,您可以将注释拆分为多行以使其更具可读性,尤其是如果您有几个要提及的项目(在下面的示例中为索引).
use Doctrine\ORM\Mapping as ORM;
/**
* VideoSettings
*
* @ORM\Cache(usage="NONSTRICT_READ_WRITE")
* @ORM\Entity(repositoryClass="AppBundle\Repository\VideoSettingsRepository")
* @ORM\Table(name="emails", uniqueConstraints={
* @ORM\UniqueConstraint(name="dimension_bitrate", columns={"video_dimension", "video_bitrate"})
* }, indexes={
* @ORM\Index(name="name", columns={"nane"})
* })
*/
class VideoSettings
Run Code Online (Sandbox Code Playgroud)