【问题标题】:Custom class not found in a Laravel app在 Laravel 应用程序中找不到自定义类
【发布时间】:2018-07-28 17:18:16
【问题描述】:

我不得不尝试在我的 Laravel 项目中使用一个用于 php 的旧包。

我添加了两个自定义类,它们都在我的 Laravel 项目的主“app”文件夹下的同一个文件夹“Classes”中。

其中一个类是从我的 Laravel 项目生成的控制器中识别出来的。我的支付控制器顶部有use App\Classes\Quickbooks_Payments;

但是,转到该类的文件时,我通过通往我的控制器的路线遇到了以下错误:

Class 'App\Classes\Quickbooks_Loader' not found

现在这是我的支付控制器文件中引用上述内容的地方:

<?php
namespace App\Classes\Quickbooks_Payments;

use App\Classes\Quickbooks_Loader;
/**
 * QuickBooks Payments class
 *
 */

/**
 * Utilities class (for masking and some other misc things)
 */
QuickBooks_Loader::load('/QuickBooks/Utilities.php');

最后一行是引用上述错误的地方。而且我确实在同一个文件夹中同时拥有 Quickbooks_Loader.php 和 Quickbooks_Payments.php。我的 Quickbooks_Loader.php 文件是这样开始的:

<?php
namespace App\Classes\QuickBooks_Loader;

所以我知道这可能是因为我对自定义/导入类缺乏经验。我做错了什么,我应该如何正确“导入”这些自定义类并让它们毫无问题地被识别?

【问题讨论】:

  • 类名中的下划线是可疑的。看起来好像您在 App 命名空间中混合了 PSR-0 和 PSR-4

标签: php laravel class laravel-5


【解决方案1】:

在您展示的两个类中更改命名空间:

namespace App\Classes;

然后运行composer du

另外,请确保课程看起来像这样,而不是像你展示的那样(我不确定你是否剪掉了一些东西):

<?php
namespace App\Classes;

use App\Classes\Quickbooks_Loader;

class Quickbooks_Payments
{
    public function __construct()
    {
        dd('It\'s working!');
    }   
}

【讨论】:

    猜你喜欢
    • 2019-11-01
    • 2013-05-14
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多