这是我的网络路线:
Route::group([
'middleware' => 'proveedor_auth'
], function ($router) {
require base_path('routes/custom/proveedor_routes.php');
});
Route::group([
'middleware' => 'tendero_auth'
], function ($router) {
require base_path('routes/custom/tendero_routes.php');
});
我尝试使用Route :: Group,但只能使用" tendero_auth"。
还有其他更好的方法吗?
proveedor_auth:
public function handle($request, Closure $next)
{
if (Auth::guard('web_proveedor')->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('log');
}
}
return $next($request);
}
tendero_auth:
public function handle($request, Closure $next)
{
if (Auth::guard('web_tendero')->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('log');
}
}
return $next($request);
}
或者有些图书馆可以帮我吗?
答案 0 :(得分:0)
tendero_routes.php
Route::get('/', function () {
return view('tendero.index');
});
proveedor_routes.php
Route::get('/', function () {
return view('proveedores.index');
});
我的想法是稍后通过ResourceController更改匿名函数。这仅用于测试。
答案 1 :(得分:0)
显然第二个人会覆盖第一个。
Route::group(['middleware' => 'web'], function() {
Route::get('/', function () {
return view('tendero.index');
});
});
Route::group(['middleware' => 'auth'], function() {
Route::get('/', function () {
return view('proveedores.index');
});
});
在执行php artisan route:list
时,只会列出第二个:
php artisan route:list
+--------+----------+-----+------+---------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+-----+------+---------+------------+
| | GET|HEAD | / | | Closure | auth |
+--------+----------+-----+------+---------+------------+
这里似乎也证实了: https://laracasts.com/discuss/channels/laravel/multiple-routes-with-same-url-but-different-names
我认为网址已在其网址上编入索引并加以关键字 - 因此也是如此 第一个将被第一个完全覆盖。