2015-01-09 18 views
5

Tôi muốn tạo ra một mô hình Category có thể chứa category khác, nhưng có một vấn đề với lĩnh vực tài liệu tham khảo mà tôi có thể thiết lập loại hiện tại của tôi để nó tựkeystoneJS mối quan hệ tự

Bất kỳ lời đề nghị như thế nào để đạt được mục thứ bậc? Có KeystoneJS có bộ lọc như 'không bình đẳng' không? Mặt khác, có lẽ tôi có thể thiết lập trường chuẩn mặc định để nó tự và nó sẽ giống như một gốc ...

mã hiện tại của tôi dưới đây:

 

    var keystone = require('keystone'), 
     Types = keystone.Field.Types; 

    var PageCategory = keystone.List('PageCategory', { 
     map: { name: 'name' }, 
     autokey : { from: 'name', path: 'key'} 
    }); 

    PageCategory.add({ 
     name: { type: String, required: true, unique: true}, 
     image: { type: Types.CloudinaryImage, label: "Category Image"}, 
     description : { type: Types.Html, wysiwyg: true}, 
     parent: { type: Types.Relationship, ref: "PageCategory", label: "Parent category"} 
    }); 

    PageCategory.relationship({ ref: "PageCategory", path: "parent"}); 

    PageCategory.register(); 

+0

tại sao ví dụ về danh mục ở đây http://keystonejs.com/docs/database/#relationships không phù hợp với lịch sử của bạn? –

Trả lời

0

Tôi nghĩ rằng bạn đã hiểu lầm như thế nào Model.relationship() công trình.

Nó có ba lựa chọn:

  • con đường, đây là "ảo" tên trường mà sẽ giữ các giá trị
  • ref, đây là mô hình mà chúng tôi tham khảo
  • refPath, đây là lĩnh vực trong mô hình tham chiếu mà chúng ta cư con đường với

tôi nghĩ rằng một cái gì đó phù hợp với điều này sẽ làm việc cho bạn

PageCategory.relationship({ ref: "PageCategory", path: "children", refPath: "parent"}); 
Các vấn đề liên quan