【问题标题】:How to define a Helper class in Lumen?如何在 Lumen 中定义一个 Helper 类?
【发布时间】:2020-05-07 12:11:48
【问题描述】:

我正在尝试使用 Lumen 框架创建一个 Helper 类,但它不起作用。

文件结构

composer.json ./composer.json

    [...]
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/",
            "App\\Libraries\\": "app/Libraries"
        }
    },
    [...]

正在调用 Helper 类的控制器 ./app/Http/Controllers/UserController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use \Libraries\Helpers;

class UserController extends Controller {

  /**
   * Show a list of all of the application's users.
   *
   * @return Response
   */
  public function index() {
    return Helpers::test();
  }
}

Helper 类 ./app/Libraries/Helpers.php

<?php

namespace App\Libraries;

class Helpers {
  public function test() {
    return "test";
  }
}

调用 UserController@index ./routes/web.php

    [...]
    $router->get('/', 'UserController@index');
    [...]

路线错误

哎呀,好像出了点问题。

我正在尝试所有方法,但 Helper 类不起作用。

【问题讨论】:

  • 除了下面给出的答案...您还尝试将非静态方法称为静态方法。当您想将此方法称为静态时,而不是 public function test() { 将您的方法定义为静态 (public static function test() {)

标签: php laravel api lumen


【解决方案1】:

您忘记在 UserController 的命名空间前添加 App

use App\Libraries\Helpers;

此外,无需在 composer.json 中添加额外的自动加载规则。 app/libraries 已经在第一条规则中。始终包含所有子文件夹。

【讨论】:

    猜你喜欢
    • 2021-07-23
    • 2019-03-06
    • 2017-11-09
    • 2015-09-27
    • 2019-10-24
    • 2010-12-02
    • 2011-08-21
    • 2016-03-12
    • 2014-12-20
    相关资源
    最近更新 更多