2011-11-02 5 views
0

나는 주석 처리 할 수있는 기사를 포함하고있는 개발중인 프로젝트가 있습니다 (물론 별도의 테이블에 저장된 주석). 각 논평의 필드에 대한 사전 논리를 앱에서로드 할 때마다 수행하고 싶습니다. 수행하고자하는 데이터 로직은 맞춤 작성된 구성 요소에서 가져온 것입니다.구성 요소를 사용하여로드 할 때의 데이터 로직 - cakePHP

이것이 전 세계적으로 달성 될 수있는 논리적 인 장소는 의견 모델에서 왔지만 잘못 될 수 있습니다. 내가 모델에서 구성 요소를 사용할 수 있는지 난 100 % 아니지만, 나는 백에게 전화() 함수 afterFind를 사용하여이 로직을 수행하는 노력했습니다 :

function afterFind($results) { 
     foreach ($results as $key => $val) { 
      if (isset($val['Comment']['created'])) { 
       $results[$key]['Comment']['created'] = $this->Dateconvert->howLongAgo($val['Comment']['created']);; 
      } 
     } 
     return $results; 
    } 

내가에서 메아리 시도를 이 함수 내부에 실제로 호출되는 것처럼 보이지는 않지만 검색은 어떤 함수도 표시하지 않았지만 afterFind()는 내가 성취하려는 것을 설명하는 것이 가장 좋습니다.

그래서 내가 주석에 대한 연관성을 가진 다른 컨트롤러 또는 주석 컨트롤러에서로드되는지 여부와 관련하여 기사 코멘트에 대한 사후로드 논리를 수행 할 수있는 솔루션을 찾고 있습니다. 기본적으로 글로벌 한 히트 솔루션 : 구성 요소 모델과 뷰 헬퍼를위한 컨트롤러와 행동에 대한 것을 D

+0

모델에 afterFind()가 있습니까? find()를 호출 한 후에 호출해야합니다. –

답변

0

CakePHP의는

먼저, 당신은 또한 당신이 그것의 일부를 사용할 수 있다는 것을 알고 수 있음을 알고 ... 표시 어디서나 케이크가 여전히 PHP이기 때문에 원하는데, 권하고 싶지는 않습니다 ... if 함수 라이브러리는 libs 폴더 안에 넣고 거기에서 액세스 할 수 있습니다.

어떻게, 쉽게 사용 App :: import ('component', 'nameComponent'); 구성 요소는 lib, 컨트롤러 등일 수 있습니다.

로드 된 후에는 afterFind가 좋은 장소 인 반면,이 함수는 find를 사용할 때만 호출한다는 것을 기억하십시오. 저장 또는 업데이트하면 호출되지 않습니다.

희망 :

+0

고마워,이게 내가 한 대답이야. 나는 지금 어떤 분야에 대해 더 많이 읽을 필요가 있는지 알고있다 :) 나는 아직도 약간의 케이크이다 .PHP 멍청 아! 또한 find() 함수를 호출하여 모델 데이터를로드하지 않았습니다. 다시 한 번 감사드립니다! –

관련 문제