문제

내 코드에서 두 개의 루프가 실행되는데, 배열의 요소를 두 번째 배열의 키로 사용하고 싶지만 Smarty 로이 작업을 수행하는 방법은 확실하지 않습니다.

"$dateAndUserForEdit.$key.edit_id"정수가 들어 있습니다 (DB에서 당겨 됨)

나는 그 값을 두 번째 루프의 키로 사용하고 싶습니다. 정수에서 하코 코드하면 잘 실행됩니다.

{foreach from=$historyOfRepair.9 key=key item=i}

내가 시도한 것들에 대한 의사 코드는 다음과 같습니다.

{foreach from=$historyOfRepair.{$dateAndUserForEdit.$key.edit_id} key=key item=i}

그러나 물론 이것은 작동하지 않습니다! 아무도 도울 수 있습니까?

도움이 되었습니까?

해결책

다음과 같은 것은 작동 할 수 있습니다 (현재 테스트 할 수 없음) :

{assign var=edit_id value=$dateAndUserForEdit.$key.edit_id}
{foreach from=$historyOfRepair.$edit_id key=key item=i}

다른 팁

이것이 이전 버전에 필요한지는 모르겠지만 (지금은 꽤 오랫동안 믿기 때문에) 이것을 할 수 있습니다.

을 고려하면:

{$someArray.someKey=9}
{$otherArray.9=$someValue}

동등한:

{$otherArray[$someARray.$someKey]=$someValue}

나는 아직 아무도 당신에게 조언을하지 않았기 때문에 여기에만 댓글을 달고 있습니다 ... 나는 항상 내 자신의 템플릿 시스템을 만들었 기 때문에 Smarty를 사용한 적이 없습니다 (그래서 나는 여기서 무지하고 조언이 쓸모 없을 것입니다) ...

Smarty없이 배열을 구성한 다음 디스플레이를 위해 Smarty로 전달할 수 있습니까? 개인적으로, 사용자 정의 템플릿 엔진 코드를 엉망으로 만들기보다는 아마도 기본적인 것 이외의 일을 위해 할 것입니다.

나는 Arvo에 동의 할 것이다. ID를 임시 변수에 할당하여 Foreach 루프에서 대체로 사용할 수 있도록 ID를 할당하려고합니다. 그의 예제 코드에서 $ 키의 값은 $ historyofrepair 배열의 현재 항목의 키로 대체됩니다. 그렇지 않으면 작동합니다 (테스트 :)).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top