Laravel中的PATCH AJAX请求

Raf*_*ael 3 ajax rest http-verbs laravel

是否可以将AJAX PATCH请求设置为laravel,或者我是否仅限于POST?Laravel在输入隐藏字段中使用PATCH,但是,我没有使用表单元素 - 只是在单击时(通过AJAX请求)部分更新记录的按钮.

这条路线怎么样?

路由文件

Route::patch('questions/{id}', 'QuestionController@update')->before('admin');

我不确定laravel路由是否支持PATCH.

调节器

public function update($id) {
    if (Request::ajax() && Request::isMethod('patch')) {
        //partially update record here
    }
}
Run Code Online (Sandbox Code Playgroud)

JS

$('div#question_preview <some button selector>').click(function (event) {
    $.ajax({
        url: 'questions/'+question_id,
        type: 'PATCH',
        data: {status: 'some status'}
    });
});
Run Code Online (Sandbox Code Playgroud)

我只是想寻求清晰,谢谢!

Set*_*Lar 8

是的,有可能尝试

在你的JavaScript中

$('#div#question_preview <some button selector>').click(function() {
        $.ajax({
                url: 'questions/'+question_id,
                type: 'PATCH',
                data: {status: <SOME VALUE I WANT>, _method: "PATCH"},
                success: function(res) {

                }
        });
});
Run Code Online (Sandbox Code Playgroud)

在你的路线

Route::patch('questions/{id}', 'QuestionController@update')->before('admin');
Run Code Online (Sandbox Code Playgroud)

在QuestionController Controller的更新方法中

dd(Request::method());
Run Code Online (Sandbox Code Playgroud)

你会看到像这样的回应

string(5) "PATCH"
Run Code Online (Sandbox Code Playgroud)

阅读有关Laravel doc的请求信息的更多信息.