2017-06-29 26 views
1

私はしかし、私はエラーを取得し、私はそれでやりたいことができるようにコントローラに4つの変数を渡す必要があります:laravel ajaxはコントローラに複数の変数を渡しますか?

Missing argument 1 for App\Http\Controllers\ProfileController::getGoogle()

は、ここに私のコントローラの:

function getGoogle($lat, $lng, $destinationLat, $destinationLng) { 
    print_r($lat); 
    print_r($lng); 
    print_r($destinationLat); 
    print_r($destinationLng); 
} 

とAjax:

function getDirections(lat, lng, destinationLat, destinationLng) { 
    $.ajax({ 
     url: '/google/', 
     type: 'post', 
     data: { 
      lat: lat, 
      lng: lng, 
      destinationLat: destinationLat, 
      destinationLng: destinationLng 
     }, 
     dataType: 'json', 
     success: function() { alert('hello!'); }, 
     error: function() { alert('boo!'); }, 
     headers: { 
      'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') 
     } 
    }); 
} 

ルート:

Route::post('google/', '[email protected]'); 
+0

Googleルートを表示してください。 –

+0

コードが更新されました –

+0

あなたのgetGoogle()に4つのパラメータを渡すことができるため、あなたのルートが間違っていると思います –

答えて

1

あなたはurl経由で任意のパラメータを渡していないとあなたが

function getGoogle() { 
    print_r(Input::get('lat')); 
    print_r(Input::get('lng')); 
    print_r(Input::get('destinationLat')); 
    print_r(Input::get('destinationLng')); 
} 
+0

正しい出力を出してもエラー機能を返すのはどうですか? –

+0

エラーを指定できますか? – linktoahref

+0

正直なところエラーはありませんが、開発者ツールでは出力を見ることができますが、ajaxエラー:成功の代わりに呼び出されます –

3

にあなたのコントローラメソッドの定義を変更する必要があるので、あなたが実際にコントローラにPOST変数を送信しているが、あなたは、AJAX経由POSTのparamsを渡しています

function getGoogle(Request $request) { 
    print_r($request->input('lat')); 
    print_r($request->input('lng')); 
    print_r($request->input('destinationLat')); 
    print_r($request->input('destinationLng')); 

}

imporに覚えている:あなたは、変数を読みたい場合は、GET変数としてコントローラでそれらを受け入れ、あなたのコントローラは次のようにする必要がありますtとしてリクエストするuse Illuminate\Http\Request;

関連する問題