묻고답하기
작동 순서에 대해서 여쭤보고 싶은게 있습니다
2014.04.18 09:47
회원들이 어떤 모듈을 생성할때 어떤 분류를 선택하여
이 모듈의 parent_srl값을 지정해줘서 자동으로 사이트맵 분류를 하려고 하고 있습니다.
제가 궁금한건 XE의 작동순서입니다.
알고 있는 사실은 View-> Templete파일 Input-> procFilter -> procInput -> Control -> query-> Callback
이렇게 작동을 하는 걸로 알고 있습니다.
Input-> procFilter 과정에서 셀렉트박스의 Option 값을 hidden input으로 procFilter 넘겨주는 것 까지는 잘되는 것 같습니다
헌데 procInput과정에서 컨트롤러로 넘겨주는 과정에서 Value들을 받지 못하는 건지 다시 쿼리로 쏴줄 때
NULL값이 넘어가는 것같습니다. 넘겨 받는 변수 모두 숫자입니다. 이때 컨트롤러에서 변수를 받을때
function procInput (){
//입력 받은 변수 받음
$obj =
Context
::getRequestVars();
$obj
->module_srl = Context::get(
'module_srl'
);
$obj->parent_srl = Context::get('
parent_srl'
);
$obj->url = Context::get('
parent_srl'
);
//쿼리로 쏴줌
$output
= executeQuery(
"updateMenuItemParent"
,
$obj
);
$this
->setMessage(
'success_updated'
);
}
이렇게 하는게 맞는건지가 궁금합니다 특히나 getRequestVars(); 과 Context::get 이 개념이 알고 싶습니다
<query id="updateMenuItemParent" action="update">
<tables>
<table name="menu_item" />
</tables>
<conditions>
<condition operation="equal" column="url" var="mid" notnull="notnull"/>
</conditions>
<columns>
<column name="menu_srl" default="402" minlength="1" maxlength="250" />
<column name="parent_srl" var="parent_srl" minlength="1" notnull="notnull" maxlength="250" />
</columns>
</query>
또 이 내용을 이미 존재하는 colmumn에 업데이트하는 쿼리문에 문제가 있는건걸까요?
XE는 디버깅하기가 힘든거 같습니다..ㅠㅠ 알려주시면 감사하겠습니다
댓글 4
-
sejin7940
2014.04.18 10:58
-
XE힘들당휴
2014.04.18 23:29
역시 세진님은 가장 뛰어난 분인 것 같습니다.
설명을 들으니 대번에 이해가 됐습니다
-
숭숭군
2014.04.18 11:32
저도 디버그 하기전까지 너무 힘들었는데...xe도 디버그 지원합니다.. 링크 참조하시길
-
XE힘들당휴
2014.04.18 23:30
감사합니다 꾸벅
$args = Context::getRequestVars(); => 모든 변수를 전달 받음
따라서 각각의 변수가 $args->변수명 으로 사용가능
$args->변수명 = Context::get('변수명'); => 특정한 변수 하나를 지정해서 전달받음
상황에 따라, 불필요한 변수가 들어와서 괜히 꼬일 수 있다 싶으면 하나씩 지정하셔도 되고
귀찮으면 전부 한꺼번에 받아서 사용하셔도 되고..
원하시는대로 구현하시면 됩니다.