所有的 Laravel 路由都在 routes
目录中的路由文件中定义,这些文件都由框架自动加载。routes/web.php
文件用于定义 web
界面的路由。这里面的路由都会被分配给 web
中间件组,它提供了会话状态和 CSRF 保护等功能。定义在 routes/api.php
中的路由都是无状态的,并且被分配了 api
中间件组。
大多数的应用构建,都是以在 routes/web.php
文件定义路由开始的。可以通过在浏览器中输入定义的路由 URL 来访问 routes/web.php
中定义的路由。例如,你可以在浏览器中输入 http://your-app.dev/user
来访问以下路由
Route::get('/user', 'UserController@index');
假设现在需要在Controllers新加一个Admin或者Index模块
控制器 & 命名空间
需要着重指出的是,在定义控制器路由时我们不需要指定完整的控制器命名空间。因为 RouteServiceProvider
会在一个包含命名空间的路由组中加载路由文件,我们只需要指定类名中 App\Http\Controllers
命名空间之后的部分就可以了。
如果你选择将控制器放在 App\Http\Controllers
更深层次的目录中,需要使用相对于 App\Http\Controllers
作为根命名空间的指定类名。 因此,如果你完整的控制器类名为 App\Http\Controllers\Photos\AdminController
,你在路由中应当采用如下的形式注册:
Route::get('foo', 'Photos\AdminController@method');
web.php文件则需要这样定义
控制器返回视图文件
resourses目录下
或者如下