你如何在laravel中包括一个全球课程

时间:2016-06-23 18:21:08

标签: php laravel laravel-5 laravel-5.2

我想为每个要使用的控制器包含一个类。这是我没有运气的尝试。

在Controller.php文件中,我添加了以下代码:

use App\Lib\RequestType;

然后在我的控制器UserController.php中,我调用了一个测试函数。

dd(RequestType::test());

但是会抛出一个致命的错误。

Class' App \ Http \ Controllers \ RequestType'找不到

什么是laravel在Controllers文件夹中查找该类。不应该UserController继承Controller类吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

如果您正在尝试编写静态类并通过use调用它,那么一个选项是使用composer的自动加载功能,这将使该类可以在任何地方使用。

"autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
          "app/Lib"
        ]
    }, 

然后在任何控制器中

use RequestType;

然后

dd(RequestType::test());

注意:功能测试应该像

public static function test()

答案 1 :(得分:0)

无处可自动神奇地上课。

扩展类不会继承PHP use。即使是Laravel的外墙也必须指明。

您可以将该类存储在App\Http\Controllers\Controller->__contruct()中,以使其更易于管理。

// App\Http\Controllers\Controller
public function __construct()
{
    $this->requestType = new RequestType();
}

// App\Http\Controllers\FooController
public function __construct()
{
    parent::__contruct();
}

public function index()
{
    $requestType = $this->requestType;
}