Tôi có một thực thể Công ty trong đó mỗi công ty có một công ty mẹ khác trong cấu trúc cây phân cấp.Symfony2, DoctrineFixturesBundle, không thể tải đồ đạc do ràng buộc khóa ngoài
Mọi thứ hoạt động tốt trong ứng dụng nên tôi chắc chắn các lớp Thực thể của tôi là chính xác.
Vấn đề là, nếu có đã nội dung trong cơ sở dữ liệu sau đó làm
doctrine:fixtures:load
cho lỗi này:
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails
Im khá chắc chắn vấn đề là tải: đồ đạc phải cắt ngắn bảng, nhưng nó không thể mà không nhận được lỗi này.
Tôi không chắc chắn cách giải quyết vấn đề này mà không cần phải hack thứ gì đó vào Doctrine để vô hiệu hóa các ràng buộc chính trước khi thanh trừng. Không thực sự là một giải pháp lâu dài.
Các mối quan hệ khác trong cấu trúc dữ liệu không gây ra vấn đề vì học thuyết dường như thanh lọc theo đúng thứ tự để tránh các vấn đề, nhưng với bảng Công ty tự tham chiếu nó rơi xuống.
Heres thực thể của tôi.
class Company
{
/**
* @var integer $id
*
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string $name
* @ORM\Column(type="string", length=100)
*/
protected $name;
/**
* @ORM\ManyToOne(targetEntity="Company", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
*/
protected $parent;
/* other properties here..... */
}
Im sử dụng Symfony 2.0.7 và DEPS mới nhất, và MySQL 5,5
Tôi có thông báo lỗi khác: * Số nhận dạng [...] bị thiếu cho truy vấn [...] \ Entity \ [...] *. Câu trả lời này là giải pháp, nó vẫn còn hợp lệ, ba năm sau (và với Symfony 2.3.25). Cảm ơn! –