【问题标题】:Laravel 6.2 : $request->all() return a empty arrayLaravel 6.2:$request->all() 返回一个空数组
【发布时间】:2020-05-23 18:55:13
【问题描述】:

我使用 Postman 在我的 Laravel Api 中发送请求,我有一个空数组要返回。我不知道为什么?

我的路线:

Route::middleware('auth:api')->group( function () {

    Route::resource('reservations', 'ReservationController');
});

我的预订控制器:

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests\ReservationCreateRequest;
use App\Repositories\ReservationRepository;
use App\Http\Resources\Reservation as ReservationResource;

class ReservationController extends BaseController
{

    protected $entrepriseRepository;

    public function __construct(ReservationRepository $reservationRepository)
    {
        $this->reservationRepository = $reservationRepository;
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $reservation = $this->reservationRepository->getById($id);

        return $this->sendResponse(new ReservationResource($reservation), 'Reservation');
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  Illuminate\Http\Request $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $inputs = $request->all();

        if (!$reservation = $this->reservationRepository->update($id, $inputs))
         {
         return $this->sendError('Impossible de mettre à jour', $request->errors(), 400);
        }

        return $this->sendResponse(new ReservationResource($reservation), 'Reservation mise à jour avec succès !' , 200);
    }
}

如果我只用

返回一个响应
return response($request->all());

我有一个空数组...

方法

show($id)

工作正常...

有什么建议吗?

【问题讨论】:

  • 向我们展示您如何在 Postman 中发送请求。 $id 不是 $request-&gt;all() 的一部分,如果你正在那里寻找它。
  • 什么是sendResponse()?请你显示它的代码。
  • 您是否在请求中发送api_token

标签: json ajax laravel request laravel-6.2


【解决方案1】:

如果你从邮递员那里发送PATCH 请求,你需要用x-www-form-urlencoded 发送它,因为不幸的是,Laravel 用PATCH 请求为form-data 提供了空请求。

附带说明,您不能使用x-www-form-urlencoded 发送文件,因此如果您的请求中有文件,您应该在请求正文中使用form-data_method: PATCH 发送POST 请求,Laravel 会自动将其视为PATCH 请求。

【讨论】:

  • 就是这样!非常感谢... ;)
猜你喜欢
  • 2021-05-22
  • 2020-06-06
  • 2019-01-31
  • 2018-11-17
  • 1970-01-01
  • 2016-12-24
  • 2016-07-05
  • 2021-12-11
  • 2021-09-15
相关资源
最近更新 更多