2009-08-17 4 views
1

PartialLoop 도우미의 setObjectKey 메소드를 사용하여 partialLoops로 모델을 가져 오는 방법을 알아 냈습니다. 특정 부분 루프가 모델 키를 사용하고 다른 부분 루프는 사용하지 않도록 지정하는 방법이 있는지 궁금합니다. 지금 당장이 일을해야한다고 생각합니다.ZF : partialLoop의 setObjectKey를 특정 부분에만 사용

// sets the object key for ALL partialLoops 
$this->partialLoop()->setObjectKey("model"); 
// do the thing 
echo $this->partialLoop("elements/recent-blog.phtml", $this->blogs); 
// reset the object key so further partialLoops do NOT use the key 
$this->partialLoop()->setObjectKey(null); 

이 주변의 어떤 방법 으로든?

답변

2

setObjectKey()를 사용하지 않는 것이 좋습니다. 제안 된 코드는 분명히 객체 배열에서 작동하지 않습니다. 스트레이트 manual에서 : 모델 객체 인 경우

, 당신은 이 변수의 배열에 직렬화 대신 의, 에 개체로 부분 스크립트를 통과하도록 할 수 있습니다. 당신은 [..skip ..]

그래서, 당신은 당신의 객체 직렬화하지 않으려면 'objectKey'을 설정하여이 작업을 수행 할 수 있습니다, 당신은) (setObjectKey를 사용해야합니다. parial과 partialLoop 헬퍼는 컨트롤러와 뷰 (다른 뷰 헬퍼처럼)에서 모두 액세스 할 수 있기 때문에 개체 키를 전역 적으로 활성화하고 특정 루프 (루프 끝에서 다시 활성화)로 전환하는 경향이 있습니다. 추가 입력은 확실하지만 잘 작동하는 것 같습니다.

+0

그래, 돌아와서 setObjectKey를 사용하여 끝냈다. 완벽하게 해결되었다. – typeoneerror

2

내 솔루션은 setObjectKey()를 사용하지 않을 것입니다. 왜 이렇게하지 않을까요?

echo $this->partialLoop("elements/recent-blog.phtml", array('model' => $this->blogs)); 

setObjectKey()와 같은 효과가 있습니다. 내 블로그에 this 기사에서 나는 이것에 대해 더 설명한다.

+0

흥미 롭습니다. 어떤 이유로 나는 모델 클래스의 마법 데이터베이스 메소드에 액세스 할 수 없을 것이라고 생각했다. 내가 테스트 한 줄 알았지 만 다시 시도해야합니다. 감사. – typeoneerror