我是Laravel 5的新手,并试图一点一点地理解它,此刻我真的对错误信息感到困惑。 MVC对我来说是新事物。
我尝试做的是为我的网站提供博客系统,我已经下载了名为" Serverfireteam / blog"的软件包。 https://phppackages.org/p/serverfireteam/blog
我觉得安装得很好。当我转到http://myhost.com/public/panel/login时,我会看到登录屏幕,但是当我登录时,它会给我这个错误:
Application.php第1119行中的ErrorException:无法检测应用程序命名空间。 (查看:/var/www/html/mpa2/resources/views/vendor/panelViews/dashboard.blade.php)
&安培;&安培;
Application.php第1119行中的RuntimeException:无法检测应用程序命名空间。
有趣的是它之前很好用,我可以登录并制作/编辑博客帖子,我可以看到它们转到mysql-database。我也能在现场看到它们。然后我开始修改视图/模板文件,以便将博客输出集成到我网站自己的布局中。
我不知道是什么给了我,我试图谷歌寻求解决方案,但没有帮助。什么想法可能是错的?
答案 0 :(得分:79)
好的,我解决了。我做了什么来解决这个问题:
composer update
给了我以下错误:
[Seld\JsonLint\ParsingException]
"./composer.json" does not contain valid JSON
Parse error on line 9:
"require-dev
---------------------^
Expected: 'STRING' - It appears you have an extra trailing comma
我打开了composer.json
,最后一行还有一个额外的逗号:
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
}
删除了逗号,所以看起来像这样:
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*"
}
问题已经消失。
答案 1 :(得分:9)
通常,这意味着您的composer.json文件包含无效的JSON。通常在数组末尾加一个逗号。
尝试运行此命令以准确告诉您问题出在哪里:
composer diagnose
答案 2 :(得分:2)
laravel版本:5.8.3
[另一个原因]:composer.json中的默认应用程序路径已修改
默认设置如下:
"psr-4": {
"App\\": "app/"
},
如果修改为说,
"psr-4": {
"Core\\": "app/Core/"
},
带有工匠的make
命令无法正常工作,还有其他一些事情
原因是https://github.com/laravel/framework/blob/5.3/src/Illuminate/Foundation/Application.php#L296
应用在路径中是静态的,这是引发异常https://github.com/laravel/framework/blob/5.3/src/Illuminate/Foundation/Application.php#L1143
的位置可以在bootstrap/app.php
Core/Application.php
<?php
namespace Core;
use Illuminate\Foundation\Application as IlluminateApplication;
class Application extends IlluminateApplication
{
protected $appPath = __DIR__;
}
bootstap/app.php
$app = new \Core\Application(
$_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);
答案 3 :(得分:1)
这对我造成的影响是使用//来评论。 //可以在自己的行上或行的末尾。最后还有逗号可以导致这种情况。
删除评论解决了这个问题。和/或删除额外的结尾逗号。
错误发生在“作曲家更新”和工匠命令,如“php artisan make:controller TestsController --resource”,或“php artisan make:model Test”
答案 4 :(得分:0)
您可以使用可视代码打开composer.json。 和 它将解析并标记问题
我已经解决了这个问题
答案 5 :(得分:0)
请将此命令写在项目根目录下 作曲家诊断 此命令将检测到问题 我的情况是我发现的
[Seld\JsonLint\ParsingException]
"./composer.json" does not contain valid JSON
Parse error on line 1:
3:06 PM 08-Dec-20{
^
Expected one of: 'EOF', '}', ',', ']'
然后我删除了
20年12月8日下午3:06
然后我已经成功创建了控制器。 我希望作曲家的诊断命令能够检测到您的问题。