Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未找到Laravel 5.2类,但存在具有命名空间的类_Php_Laravel_Laravel 5_Laravel 5.2 - Fatal编程技术网

Php 未找到Laravel 5.2类,但存在具有命名空间的类

Php 未找到Laravel 5.2类,但存在具有命名空间的类,php,laravel,laravel-5,laravel-5.2,Php,Laravel,Laravel 5,Laravel 5.2,美国东部时间2016年1月26日10:30更新:通过大量的谷歌搜索,我发现我误解了如何利用名称空间和自定义类。如果其他人有此问题,请阅读本教程: 它很短,很容易理解。这有助于解决此问题,并将我推向下一个错误…:D 问题: 正在尝试新安装Laravel 5并将我的Laravel 4代码转换为Laravel 5 请求:请帮助我查找错误并提供有关如何更正的详细说明 错误: additionalPCs.php第4行中的FatalErrorException: 找不到类“App\Library\Addit

美国东部时间2016年1月26日10:30更新:通过大量的谷歌搜索,我发现我误解了如何利用名称空间和自定义类。如果其他人有此问题,请阅读本教程: 它很短,很容易理解。这有助于解决此问题,并将我推向下一个错误…:D

问题: 正在尝试新安装Laravel 5并将我的Laravel 4代码转换为Laravel 5

请求:请帮助我查找错误并提供有关如何更正的详细说明

错误: additionalPCs.php第4行中的FatalErrorException: 找不到类“App\Library\AdditionalPCs\additionalComputer”

注意:我将additionalComputer.php文件放在它自己的目录App\Libary\additionalPCs中,并直接放在App\Libary目录中。这两个地方产生相同的错误。我正在使用名称空间。(可能不正确)

Composer.json

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
IndexController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Library\additionalPCs;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class IndexController extends Controller
{
    Protected $layout = 'master';
    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
        /** Wayne - 03-02-2014 - Moved for loop to a method within its own class. */
        $numberofpcs = new additionalPCs();
        $addtpcs=$numberofpcs->display();
        $this->layout->content = View::make('index')->with('addtpcs', $addtpcs)->with('businesstypelist', businesstype::dropdown())->with('contracttermlist',ContractTerm::dropdown());
    }
}
<?php
namespace App\Library;

class additionalPCs extends additionalComputer {
    public function display() {
        return $this->displayMenu();    
    }
}

每个类的命名空间都是该类的容器目录,而不是类文件本身

在名称空间的additionalPCs.php文件中,去掉\additionalPCs,它应该是:

namespace App\Library;

在发布更新后更新

您想使用additionalComputer,因此必须导入他的命名空间,如下所示:

<?php
    namespace App\Library;

    use App\Library\additionalComputer;

    class additionalPCs extends additionalComputer {
        public function display() {
            return $this->displayMenu();    
        }
    }
要使用其他PC(例如控制器),请更改:

第一个
AdditionalPCs
来自您的命名空间,第二个是您的类名。您的类AdditionalPCs位于子命名空间AdditionalPCs中

重要:它是
新的附加PCS()
(请参见开头的
A
而不是
A
),它必须是您的类名,准确地说!这是一般规则


注意你的名字(区分大小写)。最好使用PSR-2中的代码约定:

这不是很有效。我确实更改了几个项目,但随后又出现了另一个错误。我将使用更改为使用App\Library\AdditionalPC;并删除了additionalPCs目录,因此现在additionalPCs.php文件位于app\Library目录中。我收到下一个错误:找不到类“App\Library\AdditionalPCs\additionalComputer”。好的,所以我把additionalComputer.php文件移到app\library文件夹中,甚至尝试创建一个AdditionalPCs目录并放在那里,但都没有用。错误仍然存在。不确定它为什么要查找AdditionalPCS文件夹。我在原始帖子中添加了additionalComputer.php的代码。我的更正是正确的。我不知道,但是你更新了所有的代码吗?我仍然看到包含了错误的名称空间。;-)右侧,
App\Library\AdditionalPCs\additionalComputer
不存在。additionalComputer位于名称空间App\Library中,因此它是
App\Library\additionalComputer
。我100%确定这是用户错误,而不是您的建议。我对此毫无疑问我只是在另一个班上遇到了同样的问题,它不起作用。我是全新的名称空间。我读过关于它们的文章,但这是我第一次尝试使用它们。抱歉,我没有更新stackoverflow上的代码,我只是添加了addationalComputer.php的附加代码。我将更新它的其余部分。我已经更新了错误和我在原始帖子中使用的代码。我想说的是,非常感谢您花时间仔细检查。如果我能将其中两个标记为正确,我也会将其标记为正确。谢谢您的帮助。@scrfix如果对您有帮助,请投赞成票。这是一种责任,而不是特权,你给的链接断了
<?php
    namespace App\Library;

    use App\Library\additionalComputer;

    class additionalPCs extends additionalComputer {
        public function display() {
            return $this->displayMenu();    
        }
    }
namespace App\Library\AdditionalPCs;
use App\Library\AdditionalPCs;
use App\Library\AdditionalPCs\AdditionalPCs;