Ich benutze Laravel 5.1
Ich habe eine Client-Tabelle. Der Kunde erstellt sein eigenes Konto und wartet auf die Genehmigung des Administrators. Der Administrator kann sie jederzeit aktivieren, deaktivieren oder blockieren. Ich habe drei Links (ich kann auf Schaltfläche wechseln, wenn nötig) unten in der Tabelle ACTIVE
, DEACTIVATE
& amp; %Code%. Es gibt auch ein Kontrollkästchen in jeder Zeile.
Nun möchte ich einen oder mehrere Clients auswählen und den Wert des Feldes BLOCK
der Tabelle status
in der Datenbank ändern.
Hier ist der Code meiner Ansicht:
%Vor%Meine Route ist:
%Vor%Hier ist die Lösung in Schritten, es reflektiert, was Sie mir über die Kommentare erklärt haben.
Zuallererst werden Sie zwei Funktionen haben, nicht drei, aktivieren und deaktivieren, ich nehme an, dass das Deaktivieren dasselbe ist wie das Blockieren eines Benutzers.
Nun möchte ich erklären, wie das funktioniert, normalerweise, wenn Sie ein Formular in Laravel absenden, können Sie die Daten durch das Formular posten und die Daten in Ihrem Controller für den weiteren Prozess holen. In unserem Fall möchten wir die Einzel- oder Mehrfachauswahl aktualisieren und müssen daher alle Client-IDs, die wir aktivieren oder deaktivieren möchten, an unseren Controller übergeben.
Da wir vielleicht mehr als einen Client haben, müssen wir alle ausgewählten Clients als Array an den Controller übergeben, das ist großartig.
In unserem Controller gehen wir alle ausgewählten Clients durch und aktivieren oder deaktivieren sie abhängig von unserer Tastenaktion.
Wie Sie in folgendem Schnappschuss sehen können, wenn wir Client 1 und 2 auswählen und auf Aktivieren klicken, sehen wir, dass unsere Tabelle in der Datenbank für beide ausgewählten Clients auf 1 aktualisiert wird.
Für das Debugging könnten Sie dd($results);
vor $this->activateClient($results);
verwenden, um zu sehen, welche Daten gesendet werden, indem Sie auf activate klicken.
Sowohl die Schaltflächen zum Aktivieren als auch zum Deaktivieren senden die gleichen ausgewählten Clients, machen aber unterschiedliche Aktionen von formAction
method.
Dies führte zu folgender Lösung:
1- Zuerst sollten Sie Ihre Routen korrigieren, um Post zu akzeptieren, damit wir das Kontrollkästchen mit der Client-ID an die Controller-Funktion übergeben können:
%Vor%Der Admin-Pfad zeigt alle Client-Listen an, dies ist nur für Demo und Lernen, dann können Sie später ändern, wie es Ihre Projektstruktur passt.
2- Fügen Sie in Ihrem Admin-Controller folgende Funktionen hinzu und denken Sie daran, use App\client;
nach dem Namespace in Ihrem AdminController
hinzuzufügen:
3- Erstellen Sie die Admin-Ansicht Rufen Sie sie admin.blade.php auf, um alle unsere Kunden zu sehen, und wir können sie aktivieren oder deaktivieren. Wenn ich Sie wäre, werde ich den Status mit dem Standardwert in der Client-Tabelle in der Datenbank an ZERO (0)
:
Und hier, wie es in meinem Testbrowser aussah, kannst du einen oder mehrere Clients überprüfen und sie gleichzeitig aktivieren oder deaktivieren:
Ich nehme an, dass Sie Client-Modell und Migration haben.
Dies ist kein Produktionscode, es dient nur zur Demonstration. Verwenden Sie es nicht direkt in der Produktionsumgebung. Wenn Sie es in Ihrer Testumgebung testen und wenn es funktioniert, gehen Sie einen Kopf und implementieren Sie es in Ihrer Produktionsumgebung.
Tags und Links checkbox laravel-5 laravel-5.1