我应该在哪里调用控制器方法,不是从客户端请求中调用,而是在Laravel应用程序内部运行时调用。我看到了views
,但似乎适合重复执行任务,但不能直接拨打电话。
答案 0 :(得分:0)
您可以通过app()->make()
方法在Laravel应用中的几乎任何地方调用公共Controller函数,后跟函数名称:
$exampleController = app()->make(ExampleController::class);
return $exampleController->exampleFunction();
注意:在->make()
函数中提供正确的命名空间:
$exampleController = app()->make(\App\Http\Controllers\ExampleController::class) ...
,如果exampleFunction()
有任何参数,请确保将其传递给
$exampleParam = 1;
return $exampleController->exampleFunction($exampleParam);
答案 1 :(得分:0)
最好将该方法移至位于app/Http/Controllers/Controller.php
的主Controller类中,并使用$this
从任何子控制器中调用它。
确保该方法是受保护的或公共的。在子控制器中无法访问私有方法。