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