在启动时调用Laravel控制器方法

时间:2018-08-30 16:11:31

标签: laravel laravel-5

我应该在哪里调用控制器方法,不是从客户端请求中调用,而是在Laravel应用程序内部运行时调用。我看到了views,但似乎适合重复执行任务,但不能直接拨打电话。

2 个答案:

答案 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从任何子控制器中调用它。

确保该方法是受保护的或公共的。在子控制器中无法访问私有方法。