Php Laravel 5.8单路由但多控制器

Php Laravel 5.8单路由但多控制器,php,laravel,routes,laravel-middleware,Php,Laravel,Routes,Laravel Middleware,我正在为我的路线使用不同的控制器,但不起作用 这是我的路线代码 Route::get('{slug}', ['middleware'=>'isPage', 'uses'=>'PageController@view'])->name('viewPage'); Route::get('{modelName}', ['middleware'=>'isUser', 'uses'=>'ModelController@view'])->name('viewModel'

我正在为我的路线使用不同的控制器,但不起作用

这是我的路线代码

Route::get('{slug}', ['middleware'=>'isPage', 'uses'=>'PageController@view'])->name('viewPage');


Route::get('{modelName}', ['middleware'=>'isUser', 'uses'=>'ModelController@view'])->name('viewModel');
下面是isUser的中间件代码

use Closure;

use App\ModelProfile;
class isUser{
 public function handle($request, Closure $next)
 {
    $slug = $request->route()->parameter('slug');
    $model = ModelProfile::where([
        ['slug', $slug],
        ['is_status', 'ACTIVE'],
        ['is_deleted', 'NO']
    ])->count();

    if($model > 0){
        return $next($request);
    } else {
        abort(404);
    }
}
这是我的iPage中间件代码

use Closure;

use App\Page;
class isPage{
 public function handle($request, Closure $next)
 {
    $slug = $request->route()->parameter('slug');
    $model = Page::where([
        ['slug', $slug],
        ['is_status', 'ACTIVE'],
        ['is_deleted', 'NO']
    ])->count();

    if($model > 0){
        return $next($request);
    }
 }
}
在kernel.php中

'isPage' => \App\Http\Middleware\isPage::class,
'isUser' => \App\Http\Middleware\isUser::class,

如果您找到了解决方案,请阅读此内容-
https://github.com/laravel/framework/issues/27179
如果页面slug与用户slug完全相同,会发生什么情况?您试图做的事情没有一个好的解决方案。@SunnyNegi,这些中间件是用别名注册在
Kernel.php
中的吗?此外,中间件类名以小写字母开头。这与类文件名相同吗?@UdoE是的,这些中间件在Kernel.php中注册,与类名相同/filename@N69S不,这是不可能的,因为当我们生成slug时,我们在数据库中设置了一个唯一的签入,如果找到解决方案,请阅读此内容-
https://github.com/laravel/framework/issues/27179
如果页面slug与用户slug完全相同,会发生什么情况?您试图做的事情没有一个好的解决方案。@SunnyNegi,这些中间件是用别名注册在
Kernel.php
中的吗?此外,中间件类名以小写字母开头。这与类文件名相同吗?@UdoE是的,这些中间件在Kernel.php中注册,与类名相同/filename@N69S不,这是不可能的,因为当我们生成slug时,我们在数据库中放入了一个唯一的检查