扩展 Laravel 5 响应外观
Extend Laravel 5 Response Facade
我在 Laravel 5 中尝试扩展 Response facade 时遇到命名空间问题。我在 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();
}
}
我正在 config/app.php
中将其注册为服务提供商,据我所知,我应该:
providers=[
//..normal stuff
'App\Extensions\Facades\AjaxResponse',
]
这是抛出 class 未找到的正常命名空间错误:
FatalErrorException in ProviderRepository.php line 150:
Class 'App\Extensions\Facades\AjaxResponse' not found
谁能解释为什么找不到 class?
转到项目根文件夹并在终端中键入
composer dump-autoload
那么一切都应该没问题。当您创建一个新文件夹时,作曲家并不知道它,因此它无法从中自动加载文件,即使它们是 psr-4
命名空间。
EDIT 此外,您还需要在别名数组下的 config/app.php
中为您的外观声明别名,而不是提供者:
'AjaxResponse' => 'App\Extensions\Facades\AjaxResponse',
我在 Laravel 5 中尝试扩展 Response facade 时遇到命名空间问题。我在 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();
}
}
我正在 config/app.php
中将其注册为服务提供商,据我所知,我应该:
providers=[
//..normal stuff
'App\Extensions\Facades\AjaxResponse',
]
这是抛出 class 未找到的正常命名空间错误:
FatalErrorException in ProviderRepository.php line 150:
Class 'App\Extensions\Facades\AjaxResponse' not found
谁能解释为什么找不到 class?
转到项目根文件夹并在终端中键入
composer dump-autoload
那么一切都应该没问题。当您创建一个新文件夹时,作曲家并不知道它,因此它无法从中自动加载文件,即使它们是 psr-4
命名空间。
EDIT 此外,您还需要在别名数组下的 config/app.php
中为您的外观声明别名,而不是提供者:
'AjaxResponse' => 'App\Extensions\Facades\AjaxResponse',