```
Route::get('foo', function(){});
Route::get('foo', 'ControllerName@function');
Route::controller('foo', 'FooController');
```
### 资源路由
```
Route::resource('posts','PostsController');
// 资源路由器只允许指定动作通过
Route::resource('photo', 'PhotoController',['only' => ['index', 'show']]);
Route::resource('photo', 'PhotoController',['except' => ['update', 'destroy']]);
// 批量注册资源路由
Route::resources(['foo' => 'FooController', 'bar' => 'BarController'])
Route::resources(['foo' => 'FooController', 'bar' => 'BarController'], ['only' => ['index', 'show']])
Route::resources(['foo' => 'FooController', 'bar' => 'BarController'], ['except' => ['update', 'destroy']])
```
### 触发错误
```
App::abort(404);
$handler->missing(...) in ErrorServiceProvider::boot();
throw new NotFoundHttpException;
```
### 路由参数
```
Route::get('foo/{bar}', function($bar){});
Route::get('foo/{bar?}', function($bar = 'bar'){});
```
### HTTP 请求方式
```
Route::any('foo', function(){});
Route::post('foo', function(){});
Route::put('foo', function(){});
Route::patch('foo', function(){});
Route::delete('foo', function(){});
// RESTful 资源控制器
Route::resource('foo', 'FooController');
// 为一个路由注册多种请求方式
Route::match(['get', 'post'], '/', function(){});
```
### 安全路由 (TBD)
```
Route::get('foo', array('https', function(){}));
```
### 路由约束
~~~php
Route::get('foo/{bar}', function($bar){})
->where('bar', '[0-9]+');
Route::get('foo/{bar}/{baz}', function($bar, $baz){})
->where(array('bar' => '[0-9]+', 'baz' => '[A-Za-z]'))
// 设置一个可跨路由使用的模式
Route::pattern('bar', '[0-9]+')
~~~
### HTTP 中间件
~~~php
// 为路由指定 Middleware
Route::get('admin/profile', ['middleware' => 'auth', function(){}]);
Route::get('admin/profile', function(){})->middleware('auth');
~~~
### 命名路由
~~~php
Route::currentRouteName();
Route::get('foo/bar', array('as' => 'foobar', function(){}));
Route::get('user/profile', [
'as' => 'profile', 'uses' => 'UserController@showProfile'
]);
Route::get('user/profile', 'UserController@showProfile')->name('profile');
$url = route('profile');
$redirect = redirect()->route('profile');
~~~
### 路由前缀
~~~php
Route::group(['prefix' => 'admin'], function()
{
Route::get('users', function(){
return 'Matches The "/admin/users" URL';
});
});
~~~
### 路由命名空间
~~~php
// 此路由组将会传送 'Foo\Bar' 命名空间
Route::group(array('namespace' => 'Foo\Bar'), function(){})
~~~
### 子域名路由
~~~php
// {sub} 将在闭包中被忽略
Route::group(array('domain' => '{sub}.example.com'), function(){});
~~~
- 参考知识--非必学仅供必要时候查询
- 知识清单
- Composer 安装等
- artisan--创建模型-控制器-各种模块
- Route--路由
- Paginate--分页
- File--文件
- View--视图
- template--模版
- Model--模型
- Schema--数据表索引-外键-字段类型
- DB-基本使用-查询语句-joins-聚合--原生sql-增删改查等
- message--消息
- Validation--验证规则
- Auth-用户认证-用户权限
- Helper-数组对象-路径-字符串-urls-links等
- Session会话
- Response--回应
- Request--请求
- Redirect--重定向
- Environment--环境
- Log--日志
- URL--地址
- Event--事件
- Input--输入
- Security安全--哈希-加密解密
- Queue--监听
- Container--容器
- Config--参数设置
- Cache--缓存
- Cookie--设置-获取--删除等
- Mail--邮件
- String--字符串
- Collection--集合
- Storage--存储
- Lang--语言
- 单元测试
- 文件夹结构简介
- 第一章 laravel8运行环境的搭建(已经有了运行环境的直接跳过)