首页 > 后端开发 > php教程 > 如何在 Laravel 5 中从另一个控制器访问控制器方法?

如何在 Laravel 5 中从另一个控制器访问控制器方法?

Susan Sarandon
发布: 2024-10-31 08:00:30
原创
615 人浏览过

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 的所有方法,这可能并不理想。

使用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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板