2017-06-29 5 views
1

Ich brauche vier Variablen an die Steuerung übergeben, so dass ich tun kann, was ich damit tun wollen, aber ich erhalte eine Fehlermeldung:Laravel Ajax mehrere Variablen an den Controller übergeben?

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

Hier ist mein Controller:

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

und 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:

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

Bitte zeigen Sie Ihre Google-Route. –

+0

Code wurde aktualisiert –

+0

Ich denke, Ihre Route ist falsch, weil Sie 4 Parameter in Ihrem getGoogle() übergeben können –

Antwort

1

Sie passieren nicht jeden Parameter über die url und wird über Ajax POST params vorbei, so dass Sie Ihre Controller-Methode Definition

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

wie kommt es zurück Fehlerfunktion trotz gibt mir die richtige Ausgabe? –

+0

Können Sie den Fehler angeben? – linktoahref

+0

Es gibt keinen Fehler, um ehrlich zu sein, in Entwickler-Tools kann ich die Ausgabe sehen, aber in Ajax-Fehler: wird anstelle von Erfolg aufgerufen –

3

Sie senden tatsächlich POST-Variablen an die Steuerung ändern müssen, aber Sie sind sie in der Steuerung zu akzeptieren als Variablen erhalten, wenn Sie die Variablen lesen möchten, sollten Sie Ihre Controller so aussehen:

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

}

an Bedeu Denken Sie daran, t Anfrage als use Illuminate\Http\Request;

Verwandte Themen