2017-10-19 26 views
0

lorsque le contrôleur essaie d'obtenir une requête comme suit, cela fonctionnera.Impossible d'obtenir la propriété de la demande sur laravel

$test = $request->base; 
return response()->json(['test' => $test]); 

extrémité avant va se JSON comme ceci:

{name: "aaaa", price: null, discounted: null, area: null, address: null, …} 

mais lorsque je tente d'obtenir la propriété "name":

$test = $request->base 
$test2 = $test->name; 
return response()->json(['test' => $test2]); 

puis-je obtenir l'erreur à aperçu réseau:

{message: "Trying to get property of non-object", exception: "ErrorException",…} 

la raison en est que $ request-> base n'a plus rien.

$test = $request->base 
$check = gettype($test); // shows null 
$test2 = $test->name; 
return response()->json(['test' => $test2]); 

pourquoi est-ce arrivé? comment obtenir la propriété comme ceci:
$ request-> base-> nom

+0

Quelle est la valeur de '$ request-> base'? Êtes-vous sûr que c'est un objet? Est-ce que '$ test ['name']' fonctionne? – ceejayoz

+0

$ request-> base est un json comme suit: {name: "aaaa", prix: null, réduit: null, surface: null, adresse: null, ...} Et ça marche quand je change $ test2 = $ test-> name à $ test2 = $ test ['nom']; Mais qu'est-ce qui est différent entre $ test2 = $ test-> name et $ test2 = $ test ['name']? Pourquoi $ test2 = $ test-> nom ne peut pas fonctionner? – jimmy

+0

Si '$ test ['name']' fonctionne, '$ test' est un tableau, pas un objet. Vous accédez différemment aux paramètres dans les deux types de données. – ceejayoz

Répondre

1

essayez ce tableau et les objets sont de différents types. En première ligne, nous avons un tableau dans $ test donc vous ne pourrez pas accéder à l'intérieur de celui-ci en utilisant -> operator;

$test = $request->base 
$test2 = $test['name']; 
+0

Merci, j'ai réalisé que les propriétés de la requête ne sont pas json. C'est du travail. – jimmy