Aktivieren / Deaktivieren mehrerer Clients in Laravel

7

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%     
smartrahat 27.10.2015, 18:05
quelle

1 Antwort

4

Hier ist die Lösung in Schritten, es reflektiert, was Sie mir über die Kommentare erklärt haben.

Vorwort

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.

Wie kann ich es testen?

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.

Die Lösung

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:

%Vor%

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) :

%Vor%

Die Ergebnisse

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.

Hinweis:

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.

    
maytham-ɯɐɥʇʎɐɯ 29.10.2015, 18:39
quelle

Tags und Links