web-dev-qa-db-ja.com

Laravel 5.4:クラス 'App \ Http \ Controllers \ Response'が見つかりませんエラー

LaracastのAPIチュートリアルに従って、他のすべてのコントローラーが拡張するApiControllerを作成しようとしています。 ApiControllerは応答処理を担当します。

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()
            ]

        ]);
    }
}

また、ReportControllerを拡張するApiControllerもあります。

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

respondNotFoundからReportControllerメソッドを呼び出そうとすると

クラス 'App\Http\Controllers\Response'エラーが見つかりません

use Illuminate\Support\Facades\Response;を親または子クラスに追加しても、エラーが発生します。どうすれば修正できますか?

任意の助けをいただければ幸いです。

9
Tartar

ファサードなので、これを追加します。

use Response;

または、完全な名前空間を使用します。

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

または単にヘルパーを使用します:

return response()->json(...);
28
Alexey Mezenin