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

Susan Sarandon
リリース: 2024-10-31 08:00:30
オリジナル
554 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート