首页 > 解决方案 > Laravel - 将所有路由请求指向单个视图或功能

问题描述

我有一个主视图,并希望我所有的 GET 路由每次都返回相同的值。例如

Route::get('/user', function() {
  view('layout');
});
Route::get('/user/add', function() {
  view('layout');
});

如何编写单个路由函数以便每次都返回布局视图?这意味着在任何情况下或传递任意数量的参数时,它都应该始终返回布局视图。

标签: laravellaravel-8laravel-routing

解决方案


您可以在路由定义中使用变量。这将适用于所有路线。

Route::get('/{route?}', function() {
  view('layout');
});

在我看来,一个更好的方法是看看CMS结构是如何做到的。并使用部分进行URL处理,您可以处理它以进行更多自定义。

Route::get('/{model?}/{action?}', function($model, $action) {
    if ($model === 'user') {
        return view('user', compact('action'));
    } 

    return view('default');
});

推荐阅读