是否可以在一个路径的同一控制器中执行多个功能。我认为它会是这样的,但它不起作用。
Route::get('getdata','controller@getData', 'controller@getData1', 'controller@getData2');
在控制器中有以下功能:
或者有更简单的方法吗?
答案 0 :(得分:4)
在控制器中
添加类似的内容。
class YourController extends Controller {
//...
protected function getAllData() {
//Executes the seperate functions.
$this->getData();
$this->getData1();
$this->getData2();
}
//...
}
这将分别执行这些功能。
然后从您的路线中,您只需将YourController@getAllData
称为控制器的功能。
答案 1 :(得分:0)
如果多个控制器操作负责单个路由,则没有意义。这不是MVC的工作方式。每条路线应该只有一个动作,并在该动作中调用所需的所有其他功能。
请记住,对于最佳实践,控制器的每个方法必须只包含响应请求的代码,而不是业务逻辑,如果您还有其他需要调用的函数,请将它们放在另一个其他类(层)中
class MyController extends Controller {
public function myAction(MyService $myService) {
$myService->getData();
// not $this->getData()
}
}