如何在 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 的所有方法,这可能并不理想。
使用Traits
首选方法是创建具有所需逻辑的特征:
<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中文网其他相关文章!