2011-11-29 27 views
6

Tôi không thể để onDelete hoạt động trong Doctrine2 (với Ánh xạ YAML).sử dụng onDelete with Doctrine 2

Tôi cố gắng quan hệ này trong Product lớp học của tôi:

oneToOne: 
    category: 
     targetEntity: Category 
     onDelete: CASCADE 

Nhưng điều đó không làm việc ..

EDIT:

tôi đã thiết lập các ON DELETE: CASCADE bằng tay trong cơ sở dữ liệu

đã nhập bản đồ YAML với doctrine:mapping:import,

làm trống cơ sở dữ liệu

cập nhật nó từ schema với doctrine:schema:update và đã không có ON DELETE trong khóa ngoại .. nên trông giống như thậm chí thuyết không biết làm thế nào để làm điều đó lol ..

Trả lời

19

OK, đã nhận nó ! Tôi đã phải sử dụng onDelete bên joinColumn:

oneToOne: 
    category: 
     targetEntity: Category 
     joinColumn: 
      onDelete: CASCADE 
+1

onUpdate không còn được hỗ trợ. – hardik

5

Đây là cách sử dụng onDelete trong joinTable:

manyToMany: 
    parameters: 
     targetEntity: Fox\LandingBundle\Entity\Parameter 
     cascade: ["persist","remove"] 
     joinTable: 
      name: subscriberBox_parameter 
      joinColumns: 
       subscriberBox_id: 
        referencedColumnName: id 
      inverseJoinColumns: 
       parameter_id: 
        referencedColumnName: id 
        onDelete: CASCADE 
Các vấn đề liên quan