Laravel Admin Panel: Die aktuell übermittelten Formulardaten abrufen

  • Hallo,


    Ich benutze Admin Panel Paket in Laravel 10.


    Um alle Daten aus dem Formular abrufen zu können habe ich folgendes angewendet:

    Code
    $formInputs = $form->input();

    Nur, wenn ich das Formular ausgefüllt abschicke, erhalte ich folgende Meldung:

    Zitat

    ArgumentCountError In Form.php line 1475 :

    Too few arguments to function Encore\Admin\Form::input(), 0 passed in /Applications/MAMP/htdocs/.../app/Admin/Controllers/Speise/SpeiseController.php on line 201 and at least 1 expected

    und die entsprechende Zeile (SpeiseController.php on line 201) ist eben die oben genannte input()-Zeile.


    Die genannte Fehlermeldung zeigt an, dass die Methode Encore\Admin\Form::input() nicht wie erwartet verwendet wird. Weil ich Laravel Admin Panel Paket verwende, entspricht der Aufruf dieser Methode möglicherweise nicht der Definition der Methode. Denn wie in der Fehlermeldung angegeben, erwartet die input()-Methode mindestens ein Argument, aber es wird kein Argument angegeben.


    So habe ich die Laravel Admin Dokumentation (Laravel Admin / Model Form) erneut durchgelesen und da habe ich nichts über das Abrufen der Formulardaten gefunden ausser folgende:


    Zitat


    The form data that is currently submitted can be retrieved from the callback parameter $form:


    Code
    $form->saving(function (Form $form) {
    dump($form->username);
    });

    Das Admin-Panel-Paket bietet die Möglichkeit, über das $form-Objekt direkt mit Feldnamen auf Formulardaten zuzugreifen. Dies kann ein bequemer Weg sein, um einfach auf die Werte meiner Formularfelder zuzugreifen, aber ich brauche Zugriff auf alle input()-Werte aus dem Formular, um die Feldnamen dynamisch zu ändern. Hat jemand eine Idee, wie ich das im Admin Panel System machen kann? Ich wäre euch sehr dankbar, wenn ihr mir helfen könntet.

  • Ich war so müde, dass ich eine einfache Lösung übersehen habe:


    Um auf alle Formulardaten direkt über die Klasse Encore\Admin\Form zuzugreifen, ist es völlich ausreichend, einfach die Standard-Laravel-request zu verwenden:


    Code
    use Illuminate\Http\Request;
    // Abrufen aller Formulardaten aus der Request-Klasse
    $allInputs = request()->all();