2014-06-16 2 views
0

사용자 지정 메서드는 어떻게 만듭니 까? 나는 POST, PUT, GET, DELETE 등과 같은 다른 HTTP 호출을 할 때를 이해하지만, 어떻게 작성하거나 주요 사용자 정의 방법을 제쳐 놓고 사용합니까?ZF2 AbstractRestfulController 사용자 지정 메서드

예 :

이메일로 사용자를 받으시겠습니까?

현재 ($ id) 만 얻을 수는 있지만 두 옵션을 모두 원한다면 어떻게해야합니까? 이드, 이메일로 얻을?

답변

0

여기에는 몇 가지 해결책이 있습니다.

사용자의 이메일에 대한 GET/query 매개 변수와 함께 http 요청을 수집 경로 ('www.example.com/users')에 보낼 수 있습니다. 이 요청은 AbstractRestfulController 방법 getList 내부에서 처리해야하며 해당 이메일에 해당하는 사용자와 컬렉션/배열을 반환해야합니다.

그래서 이메일 [email protected]와 사용자에 대한 요청은 다음과 같을 것이다 :

http://www.example.com/users?email=some_email%40example.com 

당신은 당신이 검색어 매개 변수를 처리 할 수있는 방법으로 getList 동작을 사용자 정의 할 필요가있다. 이 같은 컨트롤러의 뭔가 :

$email = $this->params()->fromQuery('email'); 

그럼 당신은 $email와 사용자 데이터베이스에서 검색 한 후 배열이나 컬렉션을 반환해야합니다. ZF2에서 일반적으로 같은 그 컨트롤러 액션에

public function myCustomAction(){ 
    -- SOME CUSTOM CODE -- 
} 

다음 라우터에 사용자 정의 경로를 소개하고지도 :

또 다른 방법은 컨트롤러에 사용자 지정 작업을 추가하는 것입니다

'my_custom_route' => array(
    'type' => 'literal', 
    'options' => array(
     'route' => '/my_custom_route', 
     'defaults' => array(
      'controller' => 'MyControllerWithCustomAction', 
      'action'  => 'myCustomAction', 
     ), 
    ), 
), 

이메일을 통해 사용자를 찾을 수있는 맞춤 경로를 추가한다는 의미입니다. 비록 ZF2가 이것을 가능하게 해줄지라도 그것은 적절한 Restful 연습에 따르지 않습니다.

관련 문제