2016-04-21 6 views
0

ich diese Codes gesendet,lesen JSON-Daten unter Verwendung von Post in jquery mit Laravel Rahmen

var obj = '{"items":[{"Code":"c101","Description":"Car"}]}'; 
$.post('get-items',obj,function(){ 

}); 

ich diesen Code verwendet,

file_get_contents('php://input') 

Weil ich kann die POST-Daten erhalten, die gesendet wird. Mit dem obigen Code bekomme ich die rohen POST-Daten.

Wie kann ich Daten lesen ohne file_get_contents gesendet ('php: // input')? Weil ich file_get_contents nicht verwenden kann ('php: // input').

Hier ist mein Laravel Controller-Funktion,

public function getItems() 
{ 
    $data = file_get_contents('php://input'); 
    if(isset($data)) 
    { 
    ... 
    } 
} 
+0

Sie versuchen, die Daten in PHP geschickt zu bekommen? –

+0

Ich verstehe das nicht. Wir sprechen über den PHP-Teil oder den js-Teil? In PHP '$ _POST ['items']' funktioniert nicht? Hast du den json-Header oben in deiner PHP-Datei header ('Content-Type: application/json') gesetzt? Wie gehst du mit dieser Ajax-Anfrage in PHP um? –

+0

Ja melvin .. @marios, nein. Ich habe es nicht gesagt. – JMA

Antwort

0

Laravel 5.3 erwartet Eingabe in Array-Format https://laravel.com/docs/5.3/requests#retrieving-input

gesendet werden

Anforderung gesendet durch jQuery

$.ajax({ 
     url: 'http://weburl.com/api/user/create', 
     dataType: 'json', 
     type: 'POST', 
     data: {'user': user}, 
     success: function(data) { 
      this.setState({data: data}); 
     }.bind(this), 
     error: function(xhr, status, err) { 
      console.error(null, status, err.toString()); 
     }.bind(this) 
    }); 

Laravel Usercontroller :: create

public function create(Request $request) 
{ 

    $user = new User(); 
    $user->name = $request->input('user.name'); 
    $user->email = $request->input('user.email'); 
    $user->password = $request->input('user.password'); 

    $user->save(); 

    return response($user, 201); 
} 
0

In einer Laravel 5.2 Methode der Steuerung können Sie dies tun:

public function store(Request $request) 
{ 
    $items = $request->input('items'); 

    return [ 
     'error' => false, 
     'items' => $items 
    ]; 
} 
+0

Wie kann ich es in Laravel Controller-Funktion tun? – JMA

+0

Ich aktualisierte meine vorherige Antwort basierend auf Laravel 5.2 –

+0

Ich versuchte, meine ganze Funktion zu ändern. Das Ergebnis ist {error: false, items: null} – JMA

Verwandte Themen