ホームページ  >  記事  >  バックエンド開発  >  Laravel 5で別のコントローラーからコントローラーメソッドにアクセスする方法は?

Laravel 5で別のコントローラーからコントローラーメソッドにアクセスする方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 08:00:30555ブラウズ

How to Access a Controller Method from Another Controller in Laravel 5?

Laravel 5 で別のコントローラーからコントローラー メソッドにアクセスする方法

Laravel で複数のコントローラーを操作する場合、あるコントローラーから別のコントローラー内でメソッドを実行します。これを実現するためのさまざまなアプローチを次に示します。

App::call() メソッドの使用

このメソッドには、app() ヘルパー関数を使用してアクセスできます。

<code class="php">app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>

ただし、このアプローチは、組織上の懸念により推奨されません。

コントローラーの拡張

他のコントローラーを拡張することでメソッドを継承できます。

<code class="php">class SubmitPerformanceController extends PrintReportController {
     // ....
}</code>

これは PrintReportController からすべてのメソッドを継承しますが、これは望ましくない可能性があります。

特性の使用

推奨されるアプローチは、必要なロジックを持つトレイト:

<code class="php">trait PrintReport {

    public function getPrintReport() {
        // .....
    }
}</code>

次に、関連するコントローラにトレイトを含めます:

<code class="php">class PrintReportController extends Controller {
     use PrintReport;
}

class SubmitPerformanceController extends Controller {
     use PrintReport;
}</code>

これにより、両方のコントローラが $this-> を通じて getPrintReport() メソッドにアクセスできるようになります。 ;getPrintReport().

以上がLaravel 5で別のコントローラーからコントローラーメソッドにアクセスする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。