如何移除Laravel框架ShowRfqController控制器的身份验证限制
解决方法
你当前访问被重定向到登录页,是因为Laravel的auth身份验证中间件作用在了你这两个控制器方法上,按下面的操作即可移除限制:
方案1:在控制器中排除验证
在你的ShowRfqController控制器里增加构造方法,指定身份验证中间件排除当前两个公开方法即可,修改后控制器代码如下:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\rfq; use App\Models\customer_rfq; class ShowRfqController extends Controller { public function __construct() { // 仅对除inforfq、customer_inforfq之外的方法启用身份验证 $this->middleware('auth')->except([ 'inforfq', 'customer_inforfq' ]); } public function inforfq($name) { $rfq = rfq::find($name); return view('frontend.sellershowrfq',compact('rfq')); } public function customer_inforfq($name) { $customer_rfq = customer_rfq::find($name); return view('frontend.customershowrfq',compact('customer_rfq')); } }
方案2:修改路由配置移除验证
如果你的身份验证是在路由文件中统一配置的,就找到routes/web.php文件,把这两个路由从auth中间件分组中移出来,单独配置即可:
// 注意不要把这两个路由放在 Route::middleware(['auth']) 分组内 use App\Http\Controllers\ShowRfqController; Route::get('/inforfq/{name}', [ShowRfqController::class, 'inforfq']); Route::get('/customer_inforfq/{name}', [ShowRfqController::class, 'customer_inforfq']);
完成任意一种操作后,执行命令清空路由缓存即可生效:
php artisan route:clear
内容的提问来源于stack exchange,提问作者indrajeet singh
相关产品推荐
相关产品推荐

