LARAVEL $router->bind for only backend(admin)


LARAVEL $router->bind for only backend(admin)

在RouteServiceProvider中,我有:

$router->bind('user', function ($value) {
    return app(UserInterface::class)->findOrFail($value);
});

管理员的网址是"/admin/user/1"。

但对于前端 URL 是"/用户名/用户名"

所以我想检查这是"管理员"还是"前端"网址,对于管理员绑定用户,但对于前端不要绑定用户:

$adminRoute = //check if this is admin or frontend url ("/admin/user/1" or "/user/username")
if($adminRoute){
    $router->bind('user', function ($value) {
        return app(UserInterface::class)->findOrFail($value);
    });
}else{
    //nothing
}

附言。我不希望更改 findOrFail() 函数通过用户名查找用户,我想禁用非管理员 url 的绑定。

试试这个:

Route::group(array('prefix' => 'admin'), function() {
    $router->bind('user', function ($value) {
        return app(UserInterface::class)->findOrFail($value);
    });
});