gpt4 book ai didi

php - 在 Laravel 中自动加载后找不到类

转载 作者:行者123 更新时间:2023-12-04 16:59:57 25 4
gpt4 key购买 nike

我正在为 PHP Namespaces 苦苦挣扎和 Auto loadingLaravel 5.4 .我实际上决定将我需要使用的模型放在一个明确的命名文件夹中,作为 app/Models :
php artisan make:model Models/Customer
我已将 Customer 模型的命名空间设置为 namespace Models;然后,我创建了一个路由,如下所示:

Route::get('customer', function () {
$customer = \App\Models\Cutomer::find(1);
echo $customer;
});

为了做自动加载工作,我打开了 composer.json文件位于 Laravel 的根文件夹中项目并制作了 autoload如下:
"autoload": {
"classmap": [
"database",
"app/Models"
],
"psr-4": {
"App\\": "app/",
"App\\Models\\": "App/Models"
}
},

在所有这些之后,我检查了我的 Composer 是否是更新版本并运行 dump-autoload :
composer self-update
composer dump-autoload -o
vendor/composer/autoload_classmap.php的内容也值得注意:
'App\\Models\\Customer' => $baseDir . '/app/Models/Customer.php',
'App\\Models\\Test\\Test' => $baseDir . '/app/Models/Test.php',

我的问题是,每当我执行 url: http://127.0.0.1:8000/customer我会遇到以下错误输出:
(1/1) FatalThrowableError
Class 'App\Models\Cutomer' not found

请您帮我了解我的工作哪里不正确,以及如何解决?非常感谢您提前。

最佳答案

模型中的命名空间应该是 namespace App\Model; (这就是为什么你称这个类为 \App\Models\Cutomer )

当您使用 php artisan make:model Models/Customer它应该已经正确设置了命名空间。

此外,您不需要编辑您的 composer.json去做这个。删除您对 composer.json 所做的添加自动加载文件,然后运行 ​​composer dumpautoload从命令行。

希望这可以帮助!

关于php - 在 Laravel 中自动加载后找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45085002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com