>  기사  >  백엔드 개발  >  Laravel 5에서 컨트롤러 메소드에 액세스하는 방법: 메소드 및 모범 사례 가이드

Laravel 5에서 컨트롤러 메소드에 액세스하는 방법: 메소드 및 모범 사례 가이드

Linda Hamilton
Linda Hamilton원래의
2024-10-30 09:34:02576검색

How to Access Controller Methods in Laravel 5: A Guide to Methods and Best Practices

Laravel 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.