구성 파일을 통해 구성 할 수있는 메뉴를 관리하기 위해 번들을 만들려고합니다.구성 트리 : 조건부 유효성 검사 추가
그래서 class DependencyInjection\Configuration
에 몇 가지 구성 제약 조건을 작성했습니다.
필요한 구성은 메뉴에 추가해야하는 항목의 배열입니다. 각 항목은 3 가지 유형 (link
, link_notification
, widget
)을 가질 수 있습니다. 각 유형에 대해 항목에 다른 속성 (예 : route
, label
등)이 필요합니다. 구성의
예 :
menu:
utilities:
- { type: link, icon: icon_name, label: text, route: { name: route_name, params: {} } }
- { type: link_notification, notification: notification_text }
- { type: widget, controller: controller_name }
나는 각 유형에 대해 서로 다른 배열 제약 조건을 정의하는 방법을 찾을 수 없기 때문에 나는 갇혔어요.
IF type == "link" THEN scalarNode "icon" IS REQUIRED AND scalarNode "label" IS REQUIRED ...
구성 파일은 다음과 같습니다 :
나는 상태 변환하는 방법을 찾을 수 없습니다 내가 Symfony2 문서의 방법 ->ifXXX() [...] ->then()
을 보았다
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('aiomedia_menu');
$rootNode
->children()
->arrayNode('utilities')
->prototype('array')
->children()
->enumNode('type')
->values(array ('link', 'link_notification', 'widget'))
->isRequired()
->end()
->end()
->end()
->end()
->end();
return $treeBuilder;
}
을,하지만 난 알아낼 수 없습니다 이 문맥에서 그들을 사용하는 방법.