Laravel 7:从目录中的刀片文件生成命名视图路由

问题描述

一个解决此问题的好方法我有一个文件ressources/views/project/content,上面有几个刀片teplate,比方说:

home.blade.PHP
how-to.blade.PHP
info.blade.PHP
best-way-to-score.blade.PHP
...

现在,我为每个文件定义一个查看路径:

Route::view('/home','project.content.home')->name('home');
Route::view('/how-to','project.content.how-to')->name('how-to');
...

我该如何创建这些路线?我可以通过循环访问此目录中的所有文件解决该问题,但是也许我不知道laravel中有一种更优雅的方式/功能吗?

解决方法

如果我理解正确,那么您需要的是一条通用的获取路线,如下所示:

Route::get('/{page}','PageController@show');

,然后您需要一个带有函数的PageController来返回请求的页面:

public function show($page)
{
    return view('project.content.'.$page);
}

只需记住,这种路由将“捕获”每个获取请求,因此将其放在web.php文件的末尾