如何从Laravel中的路由调用辅助方法

时间:2018-03-01 11:41:19

标签: php laravel laravel-routing

通常我们从下面的路线中调用控制器方法

Route::get('/route_name', 'controllerName@method');

但有没有办法从路由调用辅助方法?

2 个答案:

答案 0 :(得分:0)

你可以use a closure

Route::get('/route_name', function() {
    helper();
});

但更好的方法是调用控制器方法并从该方法调用帮助程序:

Route::get('/route_name', 'controllerName@methodWhichWillCallHelper');

答案 1 :(得分:0)

步骤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');