2015-08-06 16 views
18

sto cercando di return Response::json('data', $request); però, sto ottenendo un errore:Response :: JSON() - laravel 5.1

FatalErrorException in ProjectsController.php line 74: Call to undefined method Illuminate\Http\Response::json()

Dove è il Response::json() si trova? Che cosa sto facendo di sbagliato?

risposta

33

utilizzare la funzione di supporto in laravel 5.1 invece:

return response()->json(['name' => 'Abigail', 'state' => 'CA']); 

Questo creerà un'istanza di \Illuminate\Routing\ResponseFactory. Vedi le phpDocs per possibili parametri di seguito:

/** 
* Return a new JSON response from the application. 
* 
* @param string|array $data 
* @param int $status 
* @param array $headers 
* @param int $options 
* @return \Symfony\Component\HttpFoundation\Response 
* @static 
*/ 
public static function json($data = array(), $status = 200, $headers = array(), $options = 0){ 

    return \Illuminate\Routing\ResponseFactory::json($data, $status, $headers, $options); 
} 
+0

offtopic, come ottenere questi dati in vista? Basta usare $ name per 'Abigail' e $ state per 'CA'? – MASh

+0

dipende dal tuo utilizzo. una richiesta xhr (ajax) potrebbe contenere un oggetto con proprietà 'name' e' state' @MASh – baao

+0

Puoi spiegare un po 'di più? Sono principiante. – MASh

1

Da un controllore si può anche restituire un oggetto/array e sarà inviato come risposta JSON (comprese le intestazioni HTTP corrette).

public function show($id) 
{ 
    return Customer::find($id); 
} 
9

Dopo abbastanza googling ho trovato la risposta dal regolatore è necessario solo un backslash come return \Response::json(['success' => 'hi, atiq']);. Oppure puoi semplicemente restituire l'array return array('success' => 'hi, atiq'); che verrà reso come json in Laravel versione 5.2.

+0

Sì, sei un risparmiatore di vita, ma perché non abbiamo usato la dichiarazione "uso". Avresti dovuto spiegare anche la parte del motivo! –

3

uso Risposta;

Poi ritorno Response::json($data);

+0

Si prega di modificare con ulteriori informazioni. Le risposte solo per codice e "prova questo" sono scoraggiate, perché non contengono contenuti ricercabili e non spiegano perché qualcuno dovrebbe "provare questo". – abarisone