在Laravel 5 中從另一個控制器存取控制器方法
在Laravel 中使用多個控制器時,可能需要從一個控制器存取方法另一個控制器中的控制器。這可以透過多種方法來實現,每種方法都有自己的優點和缺點。
直接訪問
一種方法是直接訪問,其中涉及傳遞控制器的名稱以及您希望作為 app() 函數的參數調用的方法。例如,在SubmitPerformanceController 中,您可以如下存取PrintReportController 的getPrintReport() 方法:
雖然此方法有效,但它不被認為是最佳實踐,並且可能會導致程式碼組織問題。
繼承
另一個選項是繼承SubmitPerformanceController 中的 PrintReportController,讓您直接存取 getPrintReport() 方法。但是,這種方法也繼承了父控制器的所有其他方法,這可能並不理想。
Traits
更優雅的解決方案涉及使用 Traits。建立一個包含所需方法的特徵(例如,app/Traits/PrintReport.php)並在那裡實現邏輯。隨後,使用 use 關鍵字將特徵包含在 SubmitPerformanceController 和 PrintReportController 中。
透過利用特徵,兩個控制器都可以使用 $this->getPrintReport() 存取 getPrintReport() 方法。這種方法可以提高程式碼的可重複使用性和更好的組織性。
以上是如何在 Laravel 5 中從另一個控制器存取控制器方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!