【问题标题】:Custom class in laravel is not being recognizedlaravel 中的自定义类未被识别
【发布时间】:2022-03-13 22:33:51
【问题描述】:

所以我一直在尝试为我的所有自定义类创建一个自定义类文件并将它们附加到那里,我正在使用命名空间来完成在我的控制器中使用它们但是控制器无法识别该类

好的:

这是我在项目中放置的自定义类文件app/Library/robloxClasses.php

namespace App\Library; 

class RobloxMaths{
    public function sortArrayOfArray(&$array, $subfield)
    {
            $sortarray = array();
            foreach ($array as $key => $row)
            {
                $sortarray[$key] = $row[$subfield];
            }

            array_multisort($sortarray, SORT_DESC, $array);
    }
}

Library 是一个文件夹,用于存储我的所有自定义类文件

这是我的控制器 ApiController 如何使用文件的命名空间

<?php

namespace App\Http\Controllers;

use App\Library\RobloxMaths;
use Illuminate\Http\Request;


class ApiController extends Controller
{

protected $RobloxClass;
    public function __construct(){
        $this->$RobloxClass= new RobloxMaths;
    }
}
?>

问题是,它不断返回:

Class 'App\Library\RobloxMaths' not found

老实说,我不知道出了什么问题,请帮忙!

注意:我尝试过 composer update,它会暂时修复它,但在一两天后或在我安装新依赖项后,它会通知我找不到类“App\Library\RobloxMaths”事情发生了

请帮忙

【问题讨论】:

  • 你试过composer dumpauto吗?
  • @Baheeg - 请composer dump-autoload 一次,然后尝试....
  • 我试过了,还是不行
  • 您的班级名称 RobloxMaths 与您的文件名 robloxClasses.php 不匹配。

标签: php laravel laravel-5


【解决方案1】:

确保您已在 composer.json 文件中正确设置 psr-4 自动加载根目录,并且您的文件/目录名称完全匹配,包括大小写,然后运行composer dump-autoload

例子:

"autoload": {
    "psr-4": {
        "App\\": "app/"
    }
}

这会将根命名空间App 分配给app 文件夹。

如果您使用的是 IDE,很有可能您的 usenamespace 语句会自动生成小写 app 以匹配目录名称。由于所有名称在 IDE 中都正确绑定,因此没有错误,但在运行 PHP 脚本时,自动加载器不会对您的文件执行require|require_once,因此您的类不可用。

选项 1(执行此操作)

确保您的命名空间具有与 composer.json 条目匹配的一致大小写。

选项 2(为完成而写)

确保将此根命名空间的新条目添加到您的composer.json 文件中。对于上面的示例,这将是:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "app\\": "app/"
    }
}

【讨论】:

    【解决方案2】:

    这是一个老问题,但我在 laravel 9 上遇到了同样的问题, 问题是我使用了 php 短标签

    这很愚蠢,但这就是我的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      • 2019-07-17
      相关资源
      最近更新 更多