동일한 컨트롤러에서 하나의 경로로 여러 기능을 실행할 수 있습니까? 이런 식으로 생각했지만 작동하지 않습니다.Laravel은 동일한 컨트롤러에서 여러 기능을 실행합니다
- GetData의
- getData1
- getData2
아니면 쉬운 방법이있다 : 컨트롤러에서
Route::get('getdata','[email protected]', '[email protected]', '[email protected]');
는 이러한 기능입니까?
동일한 컨트롤러에서 하나의 경로로 여러 기능을 실행할 수 있습니까? 이런 식으로 생각했지만 작동하지 않습니다.Laravel은 동일한 컨트롤러에서 여러 기능을 실행합니다
아니면 쉬운 방법이있다 : 컨트롤러에서
Route::get('getdata','[email protected]', '[email protected]', '[email protected]');
는 이러한 기능입니까?
컨트롤러에서
다음과 같이 추가하십시오.
class YourController extends Controller {
//...
protected function getAllData() {
//Executes the seperate functions.
$this->getData();
$this->getData1();
$this->getData2();
}
//...
}
이것은 각각 기능을 실행합니다.
그러면 경로에서 컨트롤러의 기능으로 [email protected]
을 호출하기 만하면됩니다.
함수는 Excel에서 활동을 작성하며 그 것입니다. 아무것도 반환하지 않습니다. 함수는 호출 할 때 한 번 실행하면됩니다. – Marc
@Marc 지금 예제를 확인하십시오. 반환 할 때 계산하지 않고 모든 함수를 호출합니다. 그러나 나는 당신에게 성공/실패 상태를 돌려주는 것뿐만 아니라 추가적인 점검을 할 것을 조언 할 것이다. – Classified
여러 컨트롤러 동작이 단일 경로를 담당하는 경우에는 의미가 없습니다. 그것은 MVC가 작동하는 방식이 아닙니다. 각 경로에 대해 하나의 조치 만 있어야하며 해당 조치 내에서 필요한 모든 다른 기능을 호출해야합니다.
베스트 프랙티스의 경우 컨트롤러의 각 메소드에는 비즈니스 로직이 아닌 요청에 응답하는 코드 만 있어야하며 호출해야하는 다른 기능이 있으면 다른 클래스 (레이어).
class MyController extends Controller {
public function myAction(MyService $myService) {
$myService->getData();
// not $this->getData()
}
}
첫 번째 방법으로 다른 방법을 호출 할 수없는 이유는 무엇입니까? 아니요, 라우터는 특정 동작에 대한 경로를 지정합니다. – lagbox
다른 모든 메서드를 호출하는 메서드를 만듭니다. 경로에 main 메소드를 지정하십시오. – Marc