2016-04-15 1 views
2

ich zwei Anwendungen haben, ist die Routen-Datei der Arbeits anbei:Wie kann ich Laravels generierte Authentifizierungsrouten effizient überschreiben?

routes.php

<?php 

Route::auth(); 

Route::group(["prefix" => "api"], function() { 
    Route::resource("places", "PlacesController"); 
    Route::resource("users", "UsersController"); 
    Route::group(["prefix" => "auth"], function() { 
     Route::get("/", "[email protected]"); 
     Route::get("logout", 'Auth\[email protected]'); 
    }); 
}); 

Route::get('/', '[email protected]'); 

ich die gleiche Sache in einer anderen Anwendung, aber es funktioniert nicht. Ich bekomme eine InvalidArgumentException, weil es die login.blade.php Datei nicht finden kann, die ich gelöscht habe, weil es von Angular gehandhabt wird. Wie überschreibe ich die von Route::auth() generierten/login und/register GET-Routen richtig und effizient?

+1

Kannst du nicht einfach Route :: auth() entfernen? Oder definieren Sie einfach Ihre eigenen, bevor Sie diese Route verwenden. –

+1

Korrekt, benutze einfach nicht Route :: auth() und definiere sie selbst, da dies alles ist, was Route :: auth() tut, indem man einfach einige einfache Routen registriert. – lagbox

+0

So hatte ich es vorher. Ich dachte einfach nicht, dass das der beste Weg ist. Aber okay, danke! – Jordan

Antwort

2

Wenn Sie außer Kraft setzen möchten/login und/registrieren, können Sie nur diese beiden Routen hinzufügen, nachdem Route::auth() wie folgt erklärt:

Route::get('login', ['as' => 'auth.login', 'uses' => 'Auth\[email protected]']); 
Route::get('register', ['as' => 'auth.register', 'uses' => 'Auth\[email protected]']); 

Als Anwendung kann die ‚login.blade.php‘ nicht gefunden die tatsächlich von der Controller-Methode zurückgegeben wird, nicht in Routen, dann müssen Sie die showLoginForm-Methode in AuthController überschreiben und die Ansicht zurückgeben, die Sie laden möchten.

public function showLoginForm() { 
    return view('path.to.your.view'); 
} 
+0

Danke für deine Antwort, die eigentlich eine Antwort auf die Frage ist, nicht wie die "Tu das nicht, tu das". Ich habe versucht, die Registerroute zu überschreiben, sie zu deaktivieren, aber ich habe * vorher * definiert, weil ich dachte, dass Laravel keine Route definieren würde, die bereits existiert. Da dies tatsächlich der Fall ist, muss die Route * nach * Route :: auth() 'überschrieben werden. Upvoted, um Ihnen zu danken. – Arcesilas