我有两个控制器SubmitPerformanceController和PrintReportController
在PrintReportController中,我有一个名为getPrintReport的方法
如何在SubmitPerformanceController中访问此方法
您可以通过以下方式访问控制器方法:
app('app\Http\Controllers\printreptcontroller')->;getPrintReport();
这会起作用,但在代码组织方面是不好的(请记住为PrintReportController使用正确的名称空间)
您可以扩展PrintReportController,以便SubmitPerformanceController将继承该方法
类SubmitPerformanceController扩展了PrintReportController{
// ....
}
但这也将从printreptcontroller继承所有其他方法
最好的方法是创建一个trait(例如在app/Traits中),在那里实现逻辑并告诉您的控制器使用它:
trait打印报告{
公共函数getPrintReport(){
// .....
}
}
告诉您的控制器使用此特性:
类PrintReportController扩展控制器{
使用打印报告;
}
类SubmitPerformanceController扩展控制器{
使用打印报告;
}
这两种解决方案都使SubmitPerformanceController具有getPrintReport方法,因此您可以使用$this->;getPrintReport()从控制器内部或直接作为路由(如果您在routes.php中映射它)
你可以在这里阅读更多关于性格的信息