【问题标题】:How to call a helper method from routes in Laravel如何从 Laravel 中的路由调用辅助方法
【发布时间】:2018-08-09 11:29:40
【问题描述】:

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

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

但是有什么方法可以从路由中调用辅助方法吗?

【问题讨论】:

  • 辅助方法是什么意思?路线的辅助方法? laravel.com/docs/5.6/helpers#method-route
  • @Christophvh...假设我创建了一个名为testHelper 的自定义助手,并且这个助手有一些像test1(),test2() 这样的函数......现在我想从路由中调用这个test1() 函数。

标签: php laravel laravel-routing


【解决方案1】:

第 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');

【讨论】:

    【解决方案2】:

    你可以use a closure:

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多