Ich versuche, auf Objekteigenschaften von einer Anfrage aus meiner Angular-App zuzugreifen. Ich verwende Laravel 5.1Zugriff auf Objekteigenschaften über URL-Parameter in Laravel nicht möglich
Eckig:
console.log('getQuestionAnswers', params);
return $http({
method: 'GET',
url: url + ver + '/questions/checkMany',
params: {
'questions[]' : params
},
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer ' + $rootScope.access_token
},
cache: true
});
console.log von params:
Laravel:
public function getAnswers(Request $request)
{
$input = $request->all();
$question_objs = $input['questions'];
foreach ($question_objs as $question_answer_object) {
return $question_answer_object;
Antwort auf Angular mit: return $question_objs;
Antwort auf Angular mit: return $question_answer_object;
Sieht aus wie so weit, so gut!
Aber wenn ich versuchen, eine Eigenschaft innerhalb Laravel zuzugreifen, wie question_id:
return $question_answer_object['question_id'];
ich Fehler:
"Illegal string offset 'question_id'
Laravel bereits die JSON parst,
// From Illuminate/Http/Request.php all() method:
if (! isset($this->json)) {
$this->json = new ParameterBag((array) json_decode($this->getContent(), true));
}
und wenn ich es zurückgebe, kann ich sehen, dass es ein Objekt ist. Warum kann ich nicht auf die Eigenschaften zugreifen? Ich habe auch json_decode
ohne Glück versucht.
Mit JSON Decode:
$test = json_decode($question_answer_object, true);
return $test['question_id'];
Dies scheint zu funktionieren. Aber warum?
Zugriff auf die Eigenschaft auf dem Objekt als solches:
return $question_answer_object->question_id;
ergibt folgende Fehler:
"Trying to get property of non-object"
@ChoncholMahmud plz siehe oben versuchen mit JSON decode – Growler
@ChoncholMahmud okay, es hat funktioniert. Aber ich dachte Laravels '$ request-> all()' '' 'return array_replace_recursive ($ this-> input(), $ this-> files-> all());' und rekursiv 'json_decodes'? Können Sie erklären? – Growler