php - 带有请求正文的 Laravel DELETE 方法

标签 php laravel http laravel-5 http-delete

我一直在尝试将带有规则和消息的 FormRequest 添加到我的 delete 方法中,但返回的请求是空的,而且规则每次都失败。

是否可以在delete方法中获取请求数据?

这是我的请求类:

use App\Http\Requests\Request;

class DeleteRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'staff_id' => ['required', 'exists:users,uid'],
            'reason' => ['required', 'string'],
        ];
    }

    /**
     * Get custom messages for validator errors.
     *
     * @return array
     */
    public function messages()
    {
        return [
            'staff_id.required' => staticText('errors.staff_id.required'),
            'staff_id.exists' => staticText('errors.staff_id.exists'),
            'reason.required' => staticText('errors.reason.required'),
            'reason.string' => staticText('errors.reason.string'),
        ];
    }
}

和 Controller :

/**
 * Handle the 'code' delete request.
 *
 * @param integer $id            The id of the code to fetch.
 * @param DeleteRequest $request The request to handle the data.
 * @return response
 */
public function deleteCode($id, DeleteRequest $request)
{
    dd($request->all());
}

最佳答案

即使 HTTP/1.1 规范没有明确声明 DELETE 请求不应该有实体主体,一些实现完全忽略包含你的数据的主体,例如某些版本的 Jetty 和 Tomcat。另一方面,一些客户端也不支持发送。

将其视为 GET request .你见过表单数据吗? DELETE 请求几乎相同。

您可以阅读很多关于该主题的内容。从这里开始:
RESTful Alternatives to DELETE Request Body

您似乎想要改变资源的状态而不是破坏它。软删除不是删除,因此需要 PUTPATCH 方法,它们都支持实体主体。如果软删除不是这种情况,那么您将通过一个调用执行两个操作。

关于php - 带有请求正文的 Laravel DELETE 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47294903/

相关文章:

php - 在本地计算机上测试 PHP 脚本

javascript - 警报功能不工作

php - 数据库<select>标签的多重选择

javascript - 我的 javascript 文件中的 Laravel 4 Blade 语法

PHP上传CSV以更新数据库记录但排除重复

laravel - CRON工作-LARAVEL-输出

laravel - 身份验证器 "LOGIN"返回 "Expected response code "23 5"but got code "53 5", with message "535 身份验证失败“。”

html - 从 formbuilder 中获取一个 id 以删除 Angular 6 中的一行

通过表进行 HTTP 缓存 最近修改时间

api - API 的安全客户端 token 身份验证