keystoneJS отношения к себе

Я хочу создать Category модель, которая может вместить другую category, но есть проблема с полем ссылки, что я могу установить свою текущую категорию на себя

Любые предложения, как достичь иерархических категорий? Есть ли KeystoneJS есть фильтр типа "не равно"? С другой стороны, может быть, я могу установить поле ссылки по умолчанию на себя, и это будет как корень...

Мой текущий код ниже:

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

    var PageCategory = keystone.List ('PageCategory', {
        карта: {имя: 'имя' },
        autokey: { from: 'name', path: 'key'}
    });

    PageCategory.add({
        name: { type: String, обязательно: true, уникально: true},
        image: { type: Types.CloudinaryImage, метка: "Изображение категории"},
        описание: {тип: Types.Html, wysiwyg: true},
        parent: { type: Types.Relationship, ref: "PageCategory", метка: "Родительская категория"}
    });

    PageCategory.relationship({ ref: "PageCategory", путь: "родительский"});

    PageCategory.register();

1 ответ

Я думаю, вы не поняли, как Model.relationship() работает.

У него есть три варианта:

  • путь, это "виртуальное" имя поля, которое будет содержать значения
  • ссылка, это модель, на которую мы ссылаемся
  • refPath, это поле в ссылочной модели, в которое мы заполняем путь

Я думаю, что-то в соответствии с этим будет работать для вас

PageCategory.relationship({ ref: "PageCategory", path: "children", refPath: "parent"});
Другие вопросы по тегам