2017-11-15 1 views
-2

심포니에서 새로운데 다른 컨트롤러에서 기본 컨트롤러 기능을 호출하고 싶습니다. 주된 목적은 거기에있다 모든 컨트롤러에 대한 몇 가지 공통 프로세스 (코드) 그래서 나는 다른 컨트롤러와 소나타 관리 컨트롤러뿐만 아니라 모든 컨트롤러에서 모든 컨트롤러의 기능에 액세스 할 수 있도록 기본 컨트롤러에서 하나의 공통 기능을 만들었지 만 전혀 모른다. 이것, 아무도 이것에 대해 알고 나서 나에게 제안 할 수있다. 미리 감사드립니다.다른 컨트롤러에서 컨트롤러 기능을 호출하는 방법 symfony 3에서?

+1

그냥으로 제목을 붙여 넣습니다

services: service_name: class: BundleName\Controller\YourControllerName 

그런 다음 모든 컨트롤러는 컨테이너를 통해이 서비스를받을 수 있습니다 : 당신의 services.yml에서

서비스로 필요한 컨트롤러를 정의 검색 창과 독서를 시작합니다. 다른 컨트롤러에서 컨트롤러를 호출하는 것은 일반적인 초보자의 실수입니다. 드물게 그렇게 할 필요가 있습니다. 답변을 읽는 것 외에도 설명서의 서비스 컨테이너 부분과 모범 사례 섹션을 살펴보십시오. – Cerad

답변

0

컨트롤러를 서비스로 정의한 다음 다른 컨트롤러에서 가져올 수 있습니다.

$otherController = $this->get('service_name'); 
$otherController->methodName(); 
+0

도움을 주셔서 감사합니다, 그것은 정상적인 컨트롤러에서 잘 작동하지만 sontata 관리자 컨트롤러에서 코드를 넣으면 오류가 발생합니다. ******************** 코드 *********************** $ BaseController = $ this-> get ('common_fetch_department_details'); return $ BaseController-> testingAction(); ******************* End Code *********************** 그것은 나를 준다 오류 : "AppBundle \ Admin \ MedicalProviderAdmin"클래스의 "get"이라는 정의되지 않은 메서드를 호출하려고 시도했습니다. 소나타 관리에서 동일한 서비스 기능을 호출하는 방법을 제안하십시오 –

+0

소나타 컨트롤러에서 일반 컨트롤러 기능을 어떻게 호출 할 수 있습니까? –

+0

@SandeepGajera 질문에 포함 시키거나 다른 질문을하십시오. – svgrafov

관련 문제