【问题标题】:Laravel 5.4: Class 'App\Http\Controllers\Response' not found errorLaravel 5.4:找不到类“App\Http\Controllers\Response”错误
【发布时间】:2017-11-14 08:07:29
【问题描述】:

我正在关注 Laracast 的 API 教程并尝试创建一个所有其他控制器都扩展的 ApiControllerApiController 负责响应处理。

class ApiController extends Controller
{
    protected $statusCode;

    public function getStatusCode()
    {
        return $this->statusCode;
    }

    public function setStatusCode($statusCode)
    {
        $this->statusCode = $statusCode;
    }

    public function respondNotFound($message = 'Not Found!')
    {
        return Reponse::json([

            'error' => [
                'message' => $message,
                'status_code' => $this->getStatusCode()
            ]

        ]);
    }
}

我还有一个扩展 ApiControllerReportController

class ReportController extends ApiController
{
    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $report = Report::find($id);

        if (! $report ) {
            $this->respondNotFound(Report does not exist.');
        }

        return Response::json([
            'data'=> $this->ReportTransformer->transform($report)
        ], 200);
    }
}

当我尝试从ReportController 调用respondNotFound 方法时,我得到了

类 'App\Http\Controllers\Response' 未找到错误

即使我将use Illuminate\Support\Facades\Response;添加到父类或子类中,我也会收到错误消息。我该如何解决这个问题?

任何帮助将不胜感激。

【问题讨论】:

  • 改用use Response;。或 response() 助手 - return response()->json(...);
  • 您用于导入类Response 的命名空间似乎不正确。使用正确的。
  • 使用语句是每个文件的,即使它们包含在父类中,您仍然必须将它们包含在子类中。在子类中添加外观使用语句或使用\Response

标签: php laravel rest laravel-5


【解决方案1】:

既然是门面,就加上这个:

use Response;

或者使用完整的命名空间:

return \Response::json(...);

或者只使用助手:

return response()->json(...);

【讨论】:

  • 使用语句放在哪里?
  • 在文件的顶部。在namespace 声明之后。
  • @Tartar 在使用Response 的文件顶部,在<?phpnamespace 行之后。您可能已经在那里看到了一个或多个 use 语句。
  • 是的,但我的意思是父母或孩子或两者兼而有之?
  • 这是一个完全不同的问题,而且你会说“以上这些解决方案都没有工作,都试过了”而没有注意到他们做到了,这真的很令人沮丧 努力解决您描述的错误消息。
猜你喜欢
  • 2016-08-27
  • 1970-01-01
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 2023-01-13
  • 1970-01-01
相关资源
最近更新 更多