代码之家  ›  专栏  ›  技术社区  ›  Mohammed Zayan

条令不起作用

  •  0
  • Mohammed Zayan  · 技术社区  · 6 年前

    我有一张发票。在本表中,我有:

    invoice_id 列,它是 PRIMARY KEY auto_increment .

    二- invoice_number

    在我的实体里我有这个代码

    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
    
    /**
     * Invoices
     *
     * @ORM\Table(name="invoices", uniqueConstraints={@ORM\UniqueConstraint(name="invoice_number", columns={"invoice_number"})})
     * @ORM\Entity
     * @ORM\HasLifecycleCallbacks
     *
     *  @UniqueEntity(fields="invoiceNumber", message="invoice number is already exist")
     */
    class Invoices
    {
    
        /**
         * @var integer
         *
         * @ORM\Column(name="invoice_id", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="IDENTITY")
         */
        private $invoiceId;
    
        /**
         * @var string
         *
         * @ORM\Column(name="invoice_number", type="string", length=50, nullable=true, unique=true)
         */
        private $invoiceNumber;
    

    在我使用的控制器中 $form->isValid() 这样地

    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {
    
    }
    

    我用这个代码呈现字段

    {{ form_label(form.salesInvoice.invoice.invoiceNumber, null, {'label_attr':{'class':'black'}}) }} <span class="required">*</span>
    {{ form_widget(form.salesInvoice.invoice.invoiceNumber) }}
    <div class="required"> {{ form_errors(form.salesInvoice.invoice.invoiceNumber) }}</div>
    

    当我试图保存发票号码重复的发票时,我遇到了这个错误

    SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1230008' for key 'invoice_number'
    

    发票号已存在

    1 回复  |  直到 6 年前
        1
  •  0
  •   Matías Navarro Carter    6 年前

    就我而言,财产 fields UniqueEntity

    @UniqueEntity(fields={"invoiceNumber"}, message="invoice number is already exist")
    

    而不是:

    @UniqueEntity(fields="invoiceNumber", message="invoice number is already exist")
    

    应该是这样。