Tôi có một danh sách 'thực thể' với OneToMany để thực thể 'xem', khóa giữa là view.content_id giữ ID của danh sách, tuy nhiên, nó cũng liên quan đến các thực thể khác, do đó bằng cách thêmDoctrine2 OneToMany không có ánh xạBởi
/**
* @var Listing
*
* @ORM\ManyToOne(targetEntity="\Acme\Bundle\Entity\Listing", inversedBy="views")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="content_id", referencedColumnName="id")
* })
*/
private $listing;
Để chế độ xem nó phanh vì khi lưu thực thể chế độ xem content_id trở thành rỗng.
Làm cách nào để khắc phục sự cố?
Relation đứng về phía niêm yết:
/**
* @var views
*
* @ORM\OneToMany(targetEntity="\Acme\Bundle\Entity\View", mappedBy="listing")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="id", referencedColumnName="content_id")
* })
*/
private $views;
Tôi đang làm cho các truy vấn bằng cách tham gia các Listing.views và thêm VỚI content_type =: ContentType mà phân biệt đối xử kết quả một số 'xem'.
Lỗi bạn nhận được không cho bạn biết sử dụng 'cascade = {" persist "}'? – cheesemacfly
Không có lỗi, đây là một cách tiếp cận hợp lệ. Tuy nhiên, khi lưu 'view' trường content_type trở thành null vì có hai chú thích trỏ đến cột này. – Paxton
Thông thường không cần chú thích 'JoinColumns' hoặc' JoinColumn' thứ hai vì có một 'chủ sở hữu' và một bên' nghịch đảo'. Tôi đoán là những chú thích trong mã của bạn đang gây ra một số loại xung đột nên Doctrine không thể giải quyết trang nào là ... –