如何使用 Doctrine 和 PHP 属性创建表索引

mic*_*vka 8 php attributes

这是带PHP注释的代码

/**
 * @ORM\Table(name="telegram_accounts", schema="users", indexes={
 *      @ORM\Index(name="subscriber_notification_idx", columns={"subscriber_notification"}, options={"where": "subscriber_notification = TRUE"}),
 *      @ORM\Index(name="rename_notification_idx", columns={"rename_notification"}, options={"where": "rename_notification = TRUE"}),
 * })
 * @ORM\Entity(repositoryClass="Skobkin\Bundle\PointToolsBundle\Repository\Telegram\AccountRepository")
 * @ORM\HasLifecycleCallbacks()
 */
class Account
Run Code Online (Sandbox Code Playgroud)

我尝试使用 PHP 属性,但我无法找出正确的语法:

#[ORM\Table(name="telegram_accounts", schema="users", indexes: [
      ORM\Index(name: "subscriber_notification_idx", columns:["subscriber_notification"], options=["where" => "subscriber_notification = TRUE"]),
      ORM\Index(name: "rename_notification_idx", columns: ["rename_notification"], options:["where" => "rename_notification = TRUE"])
])]
#[ORM\Entity(repositoryClass: "Skobkin\Bundle\PointToolsBundle\Repository\Telegram\AccountRepository"]
#[ORM\HasLifecycleCallbacks]
 */
class Account
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

如何插入ORM\Index属性的索引数组ORM\Table

mic*_*vka 13

好吧,事实证明,对于属性,语法已移至单独的属性

#[ORM\Table(name: "telegram_accounts", schema: "users")]
#[ORM\Index(name: "subscriber_notification_idx", columns: ["subscriber_notification"], options: ["where" => "subscriber_notification = TRUE"])]
#[ORM\Index(name: "rename_notification_idx", columns: ["rename_notification"], options: ["where" => "rename_notification = TRUE"])]
#[ORM\Entity(repositoryClass: "Skobkin\Bundle\PointToolsBundle\Repository\Telegram\AccountRepository"]
#[ORM\HasLifecycleCallbacks]
Run Code Online (Sandbox Code Playgroud)