Tôi đang cố gắng sao chép ví dụ từ gedmo nested-set mở rộng blog, nơi có nhiều nút cha. Ở đó, bạn có thể tạo nhiều nút di động cha mẹ cũng như trẻ em (điển hình là nested setWikipedia).Di chuyển nút "gốc" hoặc nút cha - tiện ích mở rộng Doctrine NestedSet
Đọc phần nhận xét máng, lời khuyên chung là xóa @Gedmo\TreeRoot annotation/mapping
, nhưng nếu tôi làm điều đó, tôi có thể di chuyển nút gốc, nhưng cây bị hỏng đặc biệt là id trái và phải. Nếu tôi giữ TreeRoot
và cố gắng di chuyển các nút gốc, tôi sẽ nhận được "không có nút anh chị em" hoặc điều gì đó dọc theo các dòng đó, như mong đợi.
Xem ví dụ trực tiếp tại blog tiện ích, bạn có thể thấy rằng bạn có thể tạo danh mục mà không cần cha mẹ và di chuyển lên hoặc xuống.
My Category thực thể - các bộ phận có liên quan:
class Category
{
/**
* @Gedmo\TreeLeft
* @ORM\Column(name="lft", type="integer")
*/
private $lft;
/**
* @Gedmo\TreeLevel
* @ORM\Column(name="lvl", type="integer")
*/
private $lvl;
/**
* @Gedmo\TreeRight
* @ORM\Column(name="rgt", type="integer")
*/
private $rgt;
/**
* @Gedmo\TreeRoot
* @ORM\Column(name="root", type="integer", nullable=true)
*/
private $root;
/**
* @Gedmo\TreeParent
* @ORM\ManyToOne(targetEntity="Category", inversedBy="children")
*/
private $parent;
/**
* @ORM\OneToMany(targetEntity="Category", mappedBy="parent")
* @ORM\OrderBy({"lft" = "ASC"})
* @Exclude
*/
private $children;
}
Câu hỏi: Làm thế nào để làm cho nhiều cây gốc (Tôi muốn tránh tạo ra loại giả sẽ được gốc duy nhất, và thêm mọi thứ khác là con của nút đó), và có thể di chuyển các nút gốc lên và xuống?
P.S. Tôi đang ở trên nhánh chủ.
Bạn có tìm thấy giải pháp cho việc này không? – lopsided
@lopsided Cuối cùng tôi đã làm những gì tôi muốn tránh. Thêm danh mục gốc cây "giả" và tất cả các nút gốc khác là con của nút giả. Nó hoạt động, mặc dù có một số nhược điểm, ẩn danh mục giả khi hiển thị danh mục (trong trường hợp của tôi) dưới dạng hoặc khi hiển thị chúng bên trong danh sách không theo thứ tự, vv .. –
Đó là những gì tôi đã làm với bây giờ. Hoạt động tốt cho tôi, nhưng tôi cứ tiếp tục phá cây, không chắc nó có hoàn toàn khỏe mạnh không. – lopsided