2012-01-23 5 views
0

젠드 프레임 워크의 사용법을 배우려고하고 있는데 다음 문제에 직면하고 있습니다. 특정 게시물에 대한 데이터베이스의 정보를 읽는 중입니다. 나는 Datamapper와 Models를 사용한다.foreach 루프가없는 배열에서 객체 요소에 액세스하는 방법

내보기에는 모든 게시물 정보를 읽기 위해 foreach ($ this-> postDetail $ 값)를 사용합니다. 하지만 foreach없이 정보에 액세스 할 수 있다면 지금 당장 궁금해하고 있습니다. 컨트롤러에서 이메일 주소 만 있으면되고 왜 foreach가 필요한지 알 수 없습니다. 하지만 어떻게 접근 할 수 있을까요? Zend_Debug는 다음과 같은 결과와 함께 제공 : 그것은 매우 바보 같은 질문 같은 소리 않지만, 난 그냥 컨트롤러 내부의 이메일 ADRESS을 읽을 수있는 방법을 찾을 수없는

array(1) { 
[0] => object(Application_Model_Post)#87 (27) { 
["_email":protected] => string(10) "[email protected]" 

. 누군가 나에게 힌트를 줄 수 있습니까?

답변

0

Application_Model_Post 클래스에서 비공개 값을 가져 오기 위해 접근 자 메서드를 만듭니다.

이렇게 방법을 만드십시오.

public function getEmail(){ 
    return $this->_email; 
} 

사실 datamapper를 올바르게 사용하는 경우 이미 이러한 방법을 사용하고있을 것입니다. 당신이 fetchAll에 의해 모델/DB에서 데이터를 얻을

+0

안녕하세요, 예, 모델에 Get 및 Set 메소드가 이미 있습니다. 내 Datamapper에서 사용합니다. 나는 Datamapper에서 Controller로, 그리고 View에서부터 View로 정보를 반환하는 것보다. 보기에서는 Foreach 루프를 사용하여 읽었습니다. 내가 지금하려는 것은 컨트롤러 내부에서 이메일 주소를 빼내는 것입니다. 내가 \t \t'foreach는 ($ $ 값으로 세부 사항)를 사용하는 경우 \t \t { \t \t \t는 에코 $ 부가가치> postEmail; \t \t}'내 컨트롤러에서 작동하지만 실제로 foreach가 필요합니까? 요소가 없으면 요소에 액세스 할 수있는 방법이 있습니까? – Luka

+0

$ postMapper는 모델을 올바르게 반환합니다. 따라서 $ details-> getEmail()을 사용하십시오. 나는 그것이 명백한 비트다고 생각할 것이다. – Layke

+0

아니요,'$ details-> getEmail()'을 사용하면 '객체가 아닌 객체에 getEmail() 멤버 함수 호출'이라는 오류 메시지가 나타납니다.하지만' $ post-> getEmail()'이 말이 맞는가요? 나는 모든 정보가 이미 읽혀지고 $ details에 저장되었다는 것을 의미하지만, 이제는 그 정보를 사용하지 않는 것 같습니다 ... – Luka

0

는, 예를 들면 :

$result = $this->fetchAll($select); 

당신은 다음의

$result->toArray(); 

//access like array 
$result[0]->some_col_1; 
$result[0]->some_col_2; 

$result[1]->some_col_1; 
$result[1]->some_col_2; 
... 
0

하나의 작업을해야 할 수 있습니다

  • $ 경우 자세한 내용은를 반환 배열 : $email = $details['email']; or =$details[0]['email'];
  • $ details가 객체를 반환하는 경우 : $email = $details->email;
관련 문제