我正在尝试在应用程序中实现4种组: 1)公开路线。 2)在通过名为“ superAdmin”的自定义防护访问它们之前需要进行身份验证的路由 3)前缀组中的路由 4)前缀组中需要通过默认防护“ web”访问的路由需要进行身份验证
当我与后卫SuperAdmin进行会话时,一切正常。我可以访问公共路由,前缀组中的路由以及保护组“ superAdmin”的路由。
但是,当我在防护“ web”上进行会话时,就会发生问题,所有路由(重定向到默认防护“ web”的前缀组中需要通过身份验证的路由除外)都重定向到/家。我调试了异常处理程序文件,它始终向我显示ModelNotFoundException
这是我的路由文件夹中的文件web.php
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
// Registration Routes...
$this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');//Return view
$this->post('register/validateUserData', 'Auth\RegisterController@validateUserData');
$this->get('register/getPlans/{membership}', 'Auth\RegisterController@getPlansOfMembership');
$this->post('register', 'Auth\RegisterController@register');
// Autenthication Root Routes ...
$this->get('loginRoot', 'Auth\RootLoginController@showLoginForm')->name('rootLogin');
$this->post('loginRoot', 'Auth\RootLoginController@login');
$this->post('logoutRoot', 'Auth\RootLoginController@logout')->name('rootLogout');
Route::middleware(['auth:superAdmin'])->group(function () {
Route::get('/rootHome', 'Root\RootHomeController@index')->name('rootHome');
Route::namespace('Root')->group(function () {
Route::get('/users', "RootUserController@usersView");//Return view with table users
Route::post('/users', "RootUserController@showUsers");
Route::get('/createUser', "RootUserController@createUserView");//Return view for create User
Route::post('/user', "RootUserController@createUser");
Route::get('/user/edit/{user}', "RootUserController@editUserView");//Return view for edit User
Route::put('/user/edit/{user}', "RootUserController@editUser");
Route::delete('/user/delete/{user}', "RootUserController@deleteUser");
});
});
Route::prefix('{organizationPrefix}')->group(function ($organizationPrefix) {
Route::get('/', "Auth\LoginController@showLoginForm");
// Authentication Routes...
$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('login', 'Auth\LoginController@login');
$this->post('logout', 'Auth\LoginController@logout')->name('logout');
// Password Reset Routes...
$this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
$this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
$this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
$this->post('password/reset', 'Auth\ResetPasswordController@reset');
//Verify User
Route::get('users/verify/{token}', 'User\UserController@verify')->name('verify');
Route::name('resend')->get('users/{user}/resend', 'User\UserController@resend');
Route::middleware(['auth:web','prefix.organization'])->group(function () {
Route::get('/home', 'HomeController@index')->name('home');
//Users routes
Route::namespace('User')->group(function () {
Route::get('/users', "UserController@usersView");//Return view with table users
Route::post('/users', "UserController@showUsers");
Route::get('/createUser', "UserController@createUserView");//Return view for create User
Route::post('/user', "UserController@createUser");
Route::get('/user/edit/{user}', "UserController@editUserView");//Return view for edit User
Route::put('/user/edit/{user}', "UserController@editUser");
Route::delete('/user/delete/{user}', "UserController@deleteUser");
});
});
});
我的auth.php文件位于配置文件夹中
/*
|--------------------------------------------------------------------------
| Authentication Defaults
|--------------------------------------------------------------------------
|
| This option controls the default authentication "guard" and password
| reset options for your application. You may change these defaults
| as required, but they're a perfect start for most applications.
|
*/
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
/*
|--------------------------------------------------------------------------
| Authentication Guards
|--------------------------------------------------------------------------
|
| Next, you may define every authentication guard for your application.
| Of course, a great default configuration has been defined for you
| here which uses session storage and the Eloquent user provider.
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| Supported: "session", "token"
|
*/
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'superAdmin' => [
'driver' => 'session',
'provider' => 'superAdmins',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
/*
|--------------------------------------------------------------------------
| User Providers
|--------------------------------------------------------------------------
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| If you have multiple user tables or models you may configure multiple
| sources which represent each model / table. These sources may then
| be assigned to any extra authentication guards you have defined.
|
| Supported: "database", "eloquent"
|
*/
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'superAdmins' => [
'driver' => 'eloquent',
'model' => App\SuperAdmin::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
处理程序显示给我的错误
ModelNotFoundException {#596 ▼
#model: "App\Company"
#ids: []
#message: "No query results for model [App\Company]."
#code: 0
#file: "C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\ImplicitRouteBinding.php"
#line: 36
trace: {▼
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\ImplicitRouteBinding.php:36 {▼
› if (! $model = $instance->resolveRouteBinding($parameterValue)) {
› throw (new ModelNotFoundException)->setModel(get_class($instance));
› }
}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Router.php:768 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php:39 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php:68 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php:49 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php:63 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php:37 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php:66 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:104 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Router.php:667 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Router.php:642 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Router.php:608 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Router.php:597 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:176 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:30 {▶}
C:\xampp\htdocs\facturadorg\vendor\fideloper\proxy\src\TrustProxies.php:57 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php:31 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php:31 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php:27 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php:62 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:104 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:151 {▶}
C:\xampp\htdocs\facturadorg\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:116 {▶}
C:\xampp\htdocs\facturadorg\public\index.php:55 {▼
› $response = $kernel->handle(
› $request = Illuminate\Http\Request::capture()
› );
arguments: {▶}
}
C:\xampp\htdocs\facturadorg\server.php:21 {▶}
}
}