域名路由
- 之前所有的 URL,都是手动键入的,而路由也提供了一套生成方法;
Url::build(‘地址表达式’,[‘参数’],[‘URL 后缀’],[‘域名’])
url(‘地址表达式’,[‘参数’],[‘URL 后缀’],[‘域名’])
2. 在 Collect 演示生成,拿 Blog 来实现 URL 地址;
3. 使用 build()方法,只传一个控制器时,会被误认为 Collect 下的 blog 方法;Url::build('Blog');
// /collect/blog.html
- 在没有设置路由的情况下,传递一个控制器以及操作方法;
Url::build('Blog/create');
// /blog/create.html
- 如果设置了对应路由,第 4 条生成的 URL 会相应的改变;
Route::get('bc', 'Blog/create');
// /bc.html
Route::get('bl/cr', 'Blog/create');
// /bl/cr.html
- 下面是没有设置路由和设置路由的带参数的 URL 生成;
Url::build('Blog/read', 'id=5');
// /blog/read/id/5.html
// /read/5.html
- 参数部分,也可以用数组的方式,当然,多参数也支持;
Url::build('Blog/read', ['id'=>5]);
Url::build('Blog/read', 'id=5&uid=10');
Url::build('Blog/read', ['id'=>5, 'uid'=>10]);
- 也可以使用助手函数 url 直接来设置;
url('Blog/read', ['id'=>5]);
- 也可以使用普通的地址来设置 url;
Url::build('Blog/read?id=5');
- 也可以使用和路由规则配对的方式设置 url;
Url::build('/read/5');
- 在 app.php 可以设置默认 html 后缀,也可以在方法第三个参数设置;
url('Blog/edit', ['id'=>5], 'shtml');
- 使用#name,可以生成一个带锚点的 url;
url('Blog/edit#name', ['id'=>5]);
- 使用 Url::root(‘/index.php’)在 URL 前面加上一个 index.php;
14. 但这个添加需要整体考虑路径是否支持或正确,否则无法访问;
15. 在本身有 index.php 的时候,使用 Url::root(‘/‘)隐藏;Url::root('/index.php');