如何有效地覆盖Laravel';s生成的身份验证路由


How do I efficiently override Laravel's generated auth routes?

我有两个应用程序,工作应用程序的路由文件如下:

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("/", "AuthController@GetAuth");
        Route::get("logout", 'Auth'AuthController@logout');
    });
});
Route::get('/', 'RedirectController@toAngular');

我在另一个应用程序中也有同样的东西,但它不起作用。我得到了一个InvalidArgumentException,因为它找不到我删除的login.blade.php文件,因为它是由Angular处理的。如何正确且最有效地覆盖Route::auth()生成的/login和/register GET路由?

如果您想覆盖/login和/register,您可以在声明Route::auth()后添加这两个路由,如下所示:

Route::get('login', ['as' => 'auth.login', 'uses' => 'Auth'AuthController@showLoginForm']);
Route::get('register', ['as' => 'auth.register', 'uses' => 'Auth'AuthController@showRegistrationForm']);

由于应用程序找不到"login.flade.php",它实际上是从控制器方法返回的,而不是在路由中,因此您需要覆盖AuthController中的showLoginForm方法,并返回要加载的视图。

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