Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.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响应面_Php_Laravel_Fatal Error_Facade - Fatal编程技术网

Php 扩展Laravel 5响应面

Php 扩展Laravel 5响应面,php,laravel,fatal-error,facade,Php,Laravel,Fatal Error,Facade,在尝试扩展Laravel 5中的响应外观时,我遇到了名称空间问题。我在app目录下创建了一个名为Extensions\Facades的新文件夹树。在这个文件夹中,我有一个名为AjaxResponse.php的文件,其中包含以下内容: <?php namespace App\Extensions\Facades; use Illuminate\Support\Facades\Response; class AjaxResponse extends Response{ publi

在尝试扩展Laravel 5中的响应外观时,我遇到了名称空间问题。我在
app
目录下创建了一个名为
Extensions\Facades
的新文件夹树。在这个文件夹中,我有一个名为
AjaxResponse.php
的文件,其中包含以下内容:

<?php namespace App\Extensions\Facades;

use Illuminate\Support\Facades\Response;

class AjaxResponse extends Response{

    public static function send($code,$body,$http_code=200){

        parent::json( array(
                'status'=>(string)$code,
                'body' =>$body
            ) )->setStatusCode($http_code)->send();
        exit();

    }
}
这会引发找不到类的正常命名空间错误:

FatalErrorException in ProviderRepository.php line 150: 
Class 'App\Extensions\Facades\AjaxResponse' not found

有人能解释为什么找不到这个班吗

转到项目根文件夹并在终端类型中

composer dump-autoload
那么一切都会好起来的。创建新文件夹时,composer不知道该文件夹,因此它无法从中自动加载文件,即使这些文件是
psr-4
命名空间文件

编辑此外,您还需要在别名数组下的
config/app.php
中为您的外观声明别名,而不是提供者:

 'AjaxResponse'   => 'App\Extensions\Facades\AjaxResponse',

尝试使用\照明\支持\外观\响应;(注意开头的反斜杠)。无论如何,服务提供商应该覆盖register方法,参考Laravel文档上的Facades。错误与我创建的类有关,而不是与我使用的类有关。我不认为这有什么问题。另外,
ProviderRepository.php
引用与我的新类包含在我thinkOK给你的
config\app.php
文件中有关。尝试将扩展作为服务提供商加载是错误的。有道理。我只需要能够使用这个类。不管我尝试什么,它仍然告诉我找不到该类!该死的PHP名称空间他们总是让我头痛这与你的问题没有直接关系,但你可能想看看是的,我实际上在使用这种方法,这是一个可靠的建议。出于学术上的原因,我仍然想找出这个mo of outNice,谢谢。仍然得到f-in错误,但这是好东西。
 'AjaxResponse'   => 'App\Extensions\Facades\AjaxResponse',