2011-04-19 2 views
0

나는 모델 문서를 훑어 보았고 1 개 항목으로 모델을 빌드하는 방법을 알지 못했다. 예를 들어, 현재 사용자 모델에 addOpenId($openIdHash)을 갖고 싶지만 패스하지 않고 어떻게해야 할까? 함수에 대한 사용자 ID? 내가 좋아하는 뭔가를 찾고 있어요CakePHP 모델 - 왜 1 항목에 적합하지 않습니까?

... 말인지

$user = $this->SobForm->get($userId); 
$user->addOpenId($openIdHash); 

, 그것은 CakePHP의이 단일 요소를 제어하지 않는 모델을 중심으로 구축되는 것 같다, 그래서 컨트롤러는 기능을 가질 수있다 즉 "$ user-> getAllUsers()"입니다. 반면에 그것은 모델이 아니며 관리자 또는 도우미입니다. CakePHP에서 단 하나의 모델을 사용하여 하나의 항목에만 영향을 미치거나 모든 항목에 영향을주는 함수 대신 단일 항목과 관련된 함수 만 포함 할 수 있습니다.

이런 종류의 기능에 대한 지원이 있습니까? 처음부터 모든 기능을 구현해야합니까?

+0

더 잘 설명해 주시겠습니까? 나는 너무 많은 것을 얻지 못했습니다 ... – Shoe

+0

그게 도움이됩니까? – Webnet

+0

아닙니다. 쉬운 응답 : 하나의 항목에만 영향을주는 모델을 작성하십시오. 모델을 만드는 것입니다. 필요에 따라 생성하십시오. – Shoe

답변

0

SobForm은 나에게 익숙한 것 같습니다. 나는 $ user의 변수를 클래스로 취급한다고 생각합니다. 그렇지 않습니다. 모델은 클래스이고 컨트롤러도 그렇지만 데이터베이스 쿼리의 결과 인 개별 변수는 클래스가 될 수 없습니다. 당신이 할 수있는 일은 $user = $this->OpenIdHelper->add($user,$openIdHash)과 같은 것이고 openId가 ​​추가 된 새로운 배열을 반환하도록합니다. 그러면 $this->SobForm->save($user)을 수행 할 것이라고 가정합니다. (PS는 Summaries 프로젝트에서 작업하고 있습니까?) 모델의 특정 데이터를 저장하거나 업데이트하기 위해 사용자 정의 함수를 추가하거나 ID가 있으면 모든 데이터 대신 하나의 데이터 필드를 저장하기 위해 $this->SobForm->saveField('fieldname','data');을 수행 할 수 있습니다. 먼저 설정하십시오.

관련 문제