2016-04-22 5 views
1

Ich muss in der Lage sein, eine Post-Methode zum Standard "/ register" aus einem Formular zu machen, auch wenn ich bereits authentifiziert bin.Laravel 5.2 default auth, wie registriere ich mich wenn authentifiziert

Derzeit ist es nicht möglich, ich bekomme keine Fehler, aber ich bekomme keinen Datensatz in meiner Datenbank.

Mein Formular und Code funktioniert, wenn ich nicht eingeloggt bin. Wo muss ich Änderungen vornehmen, damit es funktioniert? Ich denke, es ist in der Nähe der registersusers.php, aber dieser Code ist völlig neu für mich.

+0

Können Sie etwas Code posten? Ich habe keine neue Kopie von Laravel, um den Standard zu überprüfen ... Die Registrierungs-Controller und Routen-Datei sollte genug sein –

+0

Wenn Sie das tun müssen (was Sie fragen) und Zweck ist, sich zu registrieren (fügen Sie einen anderen Benutzer) Sie haben "schlechtes Design". Sie sollten überdenken. – Kyslik

+0

ist ein System, bei dem nur der Besitzer neue Personen registrieren kann, wenn er eingeloggt ist. Die Lösung von SlateEntropy hat funktioniert. – cger

Antwort

1

Standardmäßig können Sie dies nicht tun, da die Gast-Middleware angemeldete Benutzer daran hindert, auf die Registrierungsseite zuzugreifen. In Ihrem AuthController (von Laravel in app/Http/Controllers/Auth) können Sie angeben, welche Methoden für Nicht-Gäste (oder authentifizierte Benutzer) zugänglich bleiben sollen.

Standardmäßig ist nur die logout Methode für angemeldete Benutzer verfügbar, Sie können jedoch weitere hinzufügen, die Sie wünschen.

public function __construct() 
{ 
    $this->middleware($this->guestMiddleware(), ['except' => ['logout', 'showRegistrationForm', 'register']]); 
} 

showRegistrationForm ist verantwortlich für die Darstellung der Anmeldeseite und Form, register für die Bearbeitung der Registrierung verantwortlich ist und es persistierenden.

+1

das war eine sehr einfache Lösung und es funktioniert gut! – cger

0

Technisch funktioniert es wie beabsichtigt. Ein angemeldeter Benutzer sollte nicht in der Lage sein, einen Benutzer zu registrieren, der keinen Sinn ergibt.

Sie können jedoch einfach die RegistersUsers Eigenschaft in Ihrem eigenen Controller verwenden, um zu versuchen, einen Benutzer zu registrieren. Es ist so einfach:

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
class RegistrationController extends Controller { 
    uses RegistersUsers; 

    public function create(Request $request){ 
     return $this->postRegister($request); 
    } 
} 

Die ->postRegister() Methode der RegistersUsers Merkmal vorgesehen ist. Es akzeptiert ein Objekt \Illuminate\Http\Request und wird als Abhängigkeit injiziert, so dass Sie nur eine Instanz \Illuminate\Http\Request übergeben müssen. Sie können die registration Form leicht angezeigt und durch einfache nur $this->showRegistrationForm();, wie dies Aufruf:

public function show(){ 
    return $this->getRegister(); 
} 

Nun legen Sie Ihre Routen nur entsprechend.

Verwandte Themen