Laravel 5에서 컨트롤러 메소드에 액세스하는 방법: 메소드 및 모범 사례 가이드
Oct 30, 2024 am 09:34 AMLaravel 5에서 컨트롤러 메서드 액세스
문제:
Laravel에는 SubmitPerformanceController와 PrintReportController라는 두 개의 컨트롤러가 있습니다. SubmitPerformanceController 내의 PrintReportController에서 getPrintReport 메소드를 호출하려고 합니다. 이를 어떻게 달성할 수 있습니까?
답변:
Laravel 5의 컨트롤러 전체에서 컨트롤러 메서드에 액세스하는 여러 가지 접근 방식이 있습니다.
메서드 1: app() Helper 사용
<code class="php">app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>
이 접근 방식은 PrintReportController 클래스 인스턴스를 검색하고 해당 getPrintReport 메서드를 직접 실행합니다. 작동하지만 조직 문제로 인해 권장되지 않습니다.
방법 2: 상속
<code class="php">class SubmitPerformanceController extends PrintReportController { // ... }</code>
PrintReportController를 확장하면 SubmitPerformanceController가 getPrintReport를 포함한 모든 메서드를 상속합니다. 그러나 이 접근 방식은 필요하지 않을 수 있는 다른 모든 메서드도 상속합니다.
방법 3: 특성
특성(예: app/Traits) 생성이 고려됩니다. the最佳做法:`
<code class="php">trait PrintReport { public function getPrintReport() { // ... } } class PrintReportController extends Controller { use PrintReport; } class SubmitPerformanceController extends Controller { use PrintReport; }</code>
특성을 사용하여 SubmitPerformanceController는 컨트롤러 메서드(예: $this->getPrintReport())로 getPrintReport 메서드에 액세스할 수 있습니다. SubmitPerformanceController와 PrintReportController 모두 이 방법으로 getPrintReport에 액세스할 수 있습니다.
위 내용은 Laravel 5에서 컨트롤러 메소드에 액세스하는 방법: 메소드 및 모범 사례 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
