所以我一直在尝试为我的所有自定义类创建一个自定义类文件并将它们附加到那里,我使用名称空间来完成在我的控制器中使用它们但是控制器没有识别类
确定:
以下是我的项目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
老实说我不知道出了什么问题,请帮忙!
注意:我已经尝试过作曲家更新,并且它会暂时修复它但是在一两天之后或者在我安装新依赖项之后它会通知我没有找到类'App \ Library \ RobloxMaths'事情发生了
请帮助
答案 0 :(得分:0)
确保已在composer.json文件中正确设置了psr-4自动加载根目录,并且文件名/目录名完全匹配,包括大小写,然后然后运行composer dump-autoload
。
示例:
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
这会将根命名空间App
分配到app
文件夹。
如果您使用的是IDE,则很有可能use
和namespace
语句都是用小写的app
自动生成的,以匹配目录名。由于所有名称都可以在IDE中正确关联,因此没有错误,但是在运行PHP脚本时,自动加载器不会对文件执行require|require_once
,因此您的类不可用。
选项1(执行此操作)
确保您的名称空间具有与composer.json
条目匹配的大小写。
选项2(需填写)
确保为此根名称空间添加新条目到composer.json
文件中。对于上面的示例,这将是:
"autoload": {
"psr-4": {
"App\\": "app/",
"app\\": "app/"
}
}