글쓴사람 초보개발자
글쓴시간2013년 3월 4일 오전 0시 6분 50초
    제목템플릿언더바 stdClass 루프 사용에 관해 문의드립니다.
stdClass를 loop로 사용할 경우에

{@ loop }
{loop->label}
{/}

이런식으로 사용하면 되는데요

loop 안에 loop가 있어
{@ loop }
{@ loop->loop }
{/}
{/}

형식으로 사용할때 출력을 위해선 어떤식으로 사용해야 하나요?

몇시간째 이리 저리 바꿔가고 컴파일 소스 보았는데도 잘 모르겠습니다.
관리자 초보개발자님 안녕하세요

php에서는 foreach(객체 as 속성){} 이 가능하지만
언더바에는 객체를 루프로 돌리지 못합니다. 배열만 지원됩니다.

된다고 하신 경우도 loop 에 assign된 것이 객체가 아니고 객체들을 담은 배열일 겁니다.

잘 안되시면 var_dump($loop) 와 원하는 출력결과를 올려보시기 바랍니다.


13-03-04 09:37
초보개발자 으아 답변 갑사합니다!!
근데 제가 질문을 잘 작성 못한거 같아요. 다시 상세하게 적은 후 여쭤보겠습니다.

$category = new Category();
$category->label = '테스트';
$category->children = array();
$category->children[] = $category;
$category->children[] = $category;

$loop = array();
$loop[] = $category;
$loop[] = $category;

이런 구조로 배열을 만들었을 경우

depth1 까지는 이런식으로 구현이 가능한데
{@ loop }
<li>{loop->label}
</li>
{/}

depth2를 출력하기 위해 어떻게 해야 하는지 잘 모르겟습니다.
{@ loop }
<li>{loop->label}
{? count(loog->children)>0) }
<ul>
{@ ?????? }
????에 어떻게 해야 될까요?ㅠㅠ
{/}
</ul>
{/}
</li>
{/}



13-03-04 09:51
관리자 중첩루프에 관해서.. 배열의 키를 루프아이디로 하지 않으면 문법이 좀 난해한 면이 있습니다.


{@ loop }
<li>{loop->label}
{? count(loop->children)>0) }
<ul>
{@ loop->children }
   {..value_->label}
{/}
</ul>
{/}
</li>
{/}

이렇게하시면 될거에요.  ..value_ 에서 앞에 점 두개는 루프의 깊이를 나타내고 value_ 는 루프의 현재 요소를 뜻합니다.
13-03-04 12:01
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com