2016-10-25 2 views
1

Я пытаюсь следовать подходу, показанному во вводном руководстве и создав страницу. Страница для отдела и у меня есть URL, как/отдел/12345, который Structr любезно автоматически использует для поиска узла отдела с идентификатором 12345.Что такое «правильный» способ ссылки на входящие отношения в structr

Затем на странице можно использовать ${current.title} или ${current.description} , но я не уверен, как получить информацию о сущности, которая существует как входящее/исходящее отношение. Например, предположим, что у меня есть родительский отдел с именем «parentDepartment» в разделе удаленных атрибутов схемы.

Как отобразить имя родительского раздела на странице? Я пробовал $ {current.parentDepartment.name}, но это не кажется правильным. Я также хотел бы знать, как и где включить такую ​​же информацию для childDepartments, где есть потенциально более одного ребенка.

ответ

2

Чтобы использовать ${current.parentDepartment.name}, parentDepartment должен быть объектом, а не коллекция.

Кажется, что ваша модель данных - это дерево, построенное с простой самооценкой типа (:Department)-[:PARENT]->(:Department). Важно правильно настроить мощность, чтобы соотношение читалось (:Department)-*-[:PARENT]-1->(:Department).

Таким образом, атрибут родительского отдела parentDepartment является особым объектом и атрибутом childDepartments (при условии, что вы его переименовали) является коллекцией.

Отображение атрибутов коллекции, просто используйте ${extract(childDepartments, 'name')}. Чтобы получить список, разделенный запятыми, просто используйте ${join(extract(childDepartments, 'name'), ', ')}.

+0

Еще раз спасибо! Я не знал об интерфейсе мощности в редакторе схем, так что это огромная помощь. Сейчас у меня родительский отдел работает хорошо. Я думаю, что я могу также использовать ваши советы о дочерних департаментах, хотя мне нужно будет посмотреть документацию, чтобы найти способ выйти из объектов, чтобы я мог включать их идентификаторы в ссылки, которые мне нужно создать. Я напишу, если не смогу это решить. Еще раз, Structr находит способ произвести впечатление. – Daniel

1

Используйте комбинацию из incoming и find. Пусть узел отдел типа Department:

${ each(incoming(page), 
     each(find('Department', 'id', data.sourceId), 
       print(data.name + '\r\n') 
     ) 
    ) 
} 
Смежные вопросы