【问题标题】:Laravel 5 Unable to detect application namespaceLaravel 5无法检测应用程序命名空间
【发布时间】:2015-08-09 10:55:10
【问题描述】:

我是 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。我也能够在现场看到它们。然后我开始修改视图/模板文件,以便将博客输出集成到我网站自己的布局中。

我不知道给出了什么,我试图用谷歌搜索解决方案,但没有帮助。有什么想法可能是错的吗?

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    好的,我解决了。我做了什么来解决这个问题:

    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.*"
    }
    

    问题就解决了。

    【讨论】:

    • 感谢您发布此内容,更重要的是,发布您找到的解决方案。这也是我的问题,现在其他人可以快速解决这个问题。
    • 谢谢。我遇到了同样的问题,我用你的解决方案解决了。
    • 遇到了几乎相同的问题,这是composer.json 文件中的合并冲突。感谢您的解决方案。
    • 我认为这可能发生在将您的分支推送/合并到 git repo 时发生
    • 谢谢,我也遇到了同样的问题,你的回答解决了我的问题。
    【解决方案2】:

    请在项目根目录下写入此命令 作曲家诊断 此命令将检测问题 我的案例我发现了这个

     [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

    然后我成功创建了控制器。 我希望作曲家诊断命令会检测到您的问题。

    【讨论】:

      【解决方案3】:

      通常,这意味着您的 composer.json 文件包含无效的 JSON。通常在数组末尾有一个额外的逗号。

      尝试运行它以准确告诉您问题出在哪里:

      composer diagnose
      

      【讨论】:

      • 拯救了我的一天!。大多数人不知道这一点。
      • 就我而言,你是对的(它是 composer.json 中数组末尾的一个额外逗号)
      【解决方案4】:

      您可以使用可视代码打开 composer.json。 和 它会解析并标记问题

      我已经解决了这个问题

      【讨论】:

        【解决方案5】:

        laravel 版本:5.8.3

        【另一个原因】:composer.json中的默认应用路径被修改了

        默认设置如下所示

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

        如果修改为,

        "psr-4": {
            "Core\\": "app/Core/"
         },
        

        带有 artisan 的 make 命令不起作用,还有其他一些问题

        原因是https://github.com/laravel/framework/blob/5.3/src/Illuminate/Foundation/Application.php#L296

        app在路径中是静态的,这里是抛出异常的地方https://github.com/laravel/framework/blob/5.3/src/Illuminate/Foundation/Application.php#L1143

        这个默认行为可以在bootstrap/app.php中修改

        这是我的解决方案 [参考:https://laracasts.com/discuss/channels/general-discussion/how-i-can-change-laravel-directory-structure?page=1]

        解决方案:

        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__)
        );
        

        【讨论】:

        • 我在作曲家中遇到了类似的问题,我在 App 文件夹中添加了一个帮助文件,我在作曲家中引用了该文件,并使用了单引号。我不得不使用双重并做转储自动加载和更新现在它工作正常
        【解决方案6】:

        对我来说造成这种情况的原因是用 // 注释了行。 // 可以在单独的行上或在行尾。末尾还有逗号也会导致这种情况。

        移除 cmets 解决了这个问题。和/或删除多余的结束逗号。

        错误发生在“composer update”和诸如“php artisan make:controller TestsController --resource”或“php artisan make:model Test”之类的工匠命令中

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-13
          • 1970-01-01
          • 2015-04-10
          • 2018-08-28
          • 2023-04-09
          • 2016-05-21
          • 2015-06-12
          • 1970-01-01
          相关资源
          最近更新 更多