Ich bin neu im Laravel. Ich habe das nicht im Browser versucht, ich benutze Tests dafür.Punkt-Syntax und verschachtelte HTML-Formulare. Ich konnte keine Daten während des Tests abrufen
Ich habe Test, der wie folgt aussieht:
public function testStoreRequestValid()
{
$data = [
'name' => 'New Item',
'parameter.count' => '3',
'parameter.0.parameter_id' => '4',
'parameter.0.value_id' => '',
'parameter.0.value' => 'text',
'parameter.1.parameter_id' => '1',
'parameter.1.value_id' => '2',
'parameter.1.value' => 'Yes',
'parameter.2.parameter_id' => '2',
'parameter.2.value_id' => '',
'parameter.2.value' => '10'
];
$response = $this->call('post', '/item', $data);
// ...
}
Wenn ich versuche, Daten zu holen mit:
$parameterCount = $request->input('parameter.count');
I Null-Wert (wenn ich Methode verwenden, hat es falsch bekommt).
Wenn ich versucht habe, eckige Klammern zu verwenden, habe ich die Ergebnisse, aber ich möchte, dass die API mit JSON auch ohne zu viel Hastle in der JS verwendbar ist.
Wie löse ich das am saubersten?
Ich verstehe diesen Ansatz, aber wird Laravel solche Daten ähnlich behandeln, wenn sie per Postanforderung gesendet werden? [Dokumentation] (https://laravel.com/docs/5.2/validation#validating-arrays) sagt, es sollte funktionieren, aber das erklärt nicht, wie es funktionieren soll. Es ist so vage, dass ich raten muss. Erwartet es eckige Klammern oder Punkte? – yad
Überprüfen Sie https://laravel.com/docs/5.1/requests#retrieving-input speziell dort, wo es erwähnt * Wenn Sie an Formularen mit Array-Eingaben arbeiten, können Sie die "Punkt" -Notation verwenden, um auf die Arrays zuzugreifen * – apokryfos
Es funktioniert nicht in testet, wenn es so etwas wie ''parameter [count]' => '3'' gibt und versucht, es mit' $ request-> input (' parameter.count ') abzurufen 'es funktioniert nicht Ich bekomme _null_ wenn ich es probiert habe es. Edit: Es besteht nicht einmal die Validierung. – yad