怎么删除 artisan 自动注册的路由??

怎么删除 make:auth或者make:controller name --resource 自动注册的路由

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案
Auth::routes();

Laravel 的用户认证路由,以上等同于:

// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');

// Registration Routes...
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'Auth\RegisterController@register');

// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');

不用注册的话,把 Registration Routes 删除,所以把 Auth::routes(); 替换成以下这段代码即可:

// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');

// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
5年前 评论
讨论数量: 8
Epona

将路由文件里对应的代码注释掉就可以了。 如果是resource的话,删除掉controller里面的方法也可以,不过,访问的时候会报错。

5年前 评论

@Epona 谢谢解答 :+1:,我还有个疑问,就是比如make:auth,用artisan route:list 查看,会发现有register 和login这两条路由,我只想要login,不想要register这时候怎么处理?

5年前 评论
Epona

@wyx__ make:auth 的时候,会在routes/web.php文件下添加了了一行代码

Auth::routes(); // 具体记不住了,应该是与这个类似的代码

这一行代码里包含了登录注册所需要的路由,你可以根据 route:list 里面对应的显示,写你需要的路由就可以,不用的就删除掉, 就好了。然后把Auth::routes() 删掉就可以

5年前 评论

@Epona 根据你的提示,我找到怎么删除了 :+1:;找到这个文件:vendor\laravel\framework\src\Illuminate\Routing\Router.php中的auth方法,把这里面你不需要的路由直接注释/删除,保存;比如我不需要register的路由直接注释掉,然后在php artisan route:list ,就发现没有了这个路由。接着刷新页面报错:Route [register] not defined. (View: F:\laragon\www\learnLRLR\resources\views\welcome.blade.php);根据这条提示直接找到welcome.blade.php中使用到route('register')的地方注释掉。解决了 :kissing_heart:

5年前 评论
Epona

@wyx__ 一般还是不要修改vendor下的源码

5年前 评论
Auth::routes();

Laravel 的用户认证路由,以上等同于:

// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');

// Registration Routes...
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'Auth\RegisterController@register');

// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');

不用注册的话,把 Registration Routes 删除,所以把 Auth::routes(); 替换成以下这段代码即可:

// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');

// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
5年前 评论

@doobi 感谢解答 :+1:,我明白你的意思了,就是把Auth:routes()删了,自己重写一遍自己所需的路由。另外还有一个问题想请教;按照这种情况定义路由,如果是大型项目,那web.php 不是要写很多行路由吗??我在github上看别人的laravel项目web.php好像都没有怎么定义路由,那它的路由在哪里定义的呢

5年前 评论

vendor下的代码,如果修改的话,以后就没法安装新的compose包了,简单一点说就是捡了芝麻露了西瓜

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!