4

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

JS

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

明快さを求めているだけです、ありがとう!

4

2 に答える 2

11

ええ、それは試すことができます

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) {

                }
        });
});

あなたのルートで

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

QuestionController コントローラーの更新メソッドで

dd(Request::method());

次のような応答が表示されます

string(5) "PATCH"

詳細については、Laravel docの Request Information を参照してください。

于 2015-01-13T04:27:19.280 に答える