通常我们从下面的路线调用控制器方法
Route::get('/route_name', 'controllerName@method');
但有没有办法从路由调用辅助方法?
你可以use a closure:
Route::get('/route_name', function() {
helper();
});
但更好的方法是调用控制器方法并从该方法调用帮助程序:
Route::get('/route_name', 'controllerName@methodWhichWillCallHelper');
第1步第一个是非常简单和直接的。只需转到位于Laravel项目中的composer.json文件即可
"autoload": {
"files": [
"app/Helpers/Helper.php"
],
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
更改composer.json文件并向files数组添加新路径后,需要转储自动加载器。只需从Laravel项目目录中的终端运行此命令即可。
composer dump-autoload
现在您的帮助文件将自动加载到您的Laravel项目中。
步骤2如果您的帮助文件涉及具有这些辅助方法的类并且您已指定了命名空间,则可以通过定义别名轻松使用它们。您可以通过在config / app.php文件中的别名数组末尾添加以下内容来轻松完成此操作。
别名写'Helper' => App\Helpers\Helper::class,
步骤3现在在web.php中,您可以使用辅助函数
Route::post('/area/getAreaList', function() {
Helper::getAreas();
})->name('area.getAreaList');