## URL 生成
用于生成URL鏈接地址,系統提供的助手函數為`url`。
**函數說明**
```
/**
* Url生成
* @param string $url 路由地址
* @param array $vars 數組變量
* @param bool|string $suffix 生成的URL后綴
,例如html,默認是html
* @param bool|string $domain 域名
* @return UrlBuild
*/
function url(string $url = '', array $vars = [], $suffix = true, $domain = false): UrlBuild
```
模板使用方式
```
{:url('/Index/demo')}
```
## 入口文件說明
url 生成跟入口文件配置掛鉤,這里為了兼容不支持偽靜態的默認是顯示入口文件的,如果你配置了偽靜態是可以選擇隱藏的,這樣生成的url地址不會帶入口文件。

## 不使用路由方式生成
### 1. 應用內訪問
帶有參數形式生成,參數1的格式為:`url('控制器/操作方法')`
~~~
// url生成,默認是帶有html后綴的,url方法返回的是對象可方便額外的操作,使用(string)轉字符串
$url = (string) url('/index/demo',['aaa'=>1]);
dd($url); // 輸出結果
~~~
前臺入口文件隱藏后效果,如果未配置隱藏入口文件,則前面會有`/index.php/`,以下示例默認是配置了入口文件隱藏。
~~~
/index/demo.html?aaa=1
~~~
生成帶有域名的鏈接地址,第四個參數為`true`表示生成的鏈接地址加域名
~~~
// 自動生成域名、加后綴
$url = (string)url('/demo/index',['aaa'=>1],'html',true);
// 結果
http://xxx.cms.com/demo/index.html?aaa=1
~~~
生成錨點示例,生成錨點注意前面不需要加`/`,如下
~~~
// 錨點跟子域名同時存在時需要錨點在前,域名在后
$url = (string)url('index/demo#ddd',['aaa'=>1,'b'=>'sfsfs'],'',true);
// 結果
http://xxx.cms.com:8080/index/demo?aaa=1&b=sfsfs#ddd
~~~
### 2. 訪問其他應用,域名綁定
域名綁定配置在`config/app.php`中,目前有以下配置,這里配置好后記得在域名提供商做好解析。
~~~
// 域名綁定
'domain_bind' => [
'api' => 'api',
'*' => 'index',
],
~~~
示例:生成錨點并綁定到`api`域名,通過生成后的鏈接即可訪問到`api`應用。提示:如果入口文件未配置隱藏,那么入口文件還是存在的。
~~~
// 生成錨點,并綁定域名
$url = (string)url('index/demo#ddd@api',['aaa'=>1,'b'=>'sfsfs']);
// 隱藏入口文件結果
http://api.cms.com/index/demo.html?aaa=1&b=sfsfs#ddd
// 未隱藏結果
http://api.cms.com/index.php/index/demo.html?aaa=1&b=sfsfs#ddd
~~~
示例2:也可使用url方法的參數4來實現,如下
~~~
// 指定子域名為api
$url = (string)url('/index/demo',['aaa'=>1],'html','api');
// 也支持完整域名,如果不是80端口需要域名+端口
$url = (string)url('/index/demo',['aaa'=>1],'html','local.cms.com:8080');
~~~
### 3. 訪問其他應用,入口文件
如果不通過域名解析按入口文件來訪問,需要生成其他應用鏈接時可以通過以下寫法實現
~~~
$url = (string)url('api:/index/demo',['aaa'=>1,'b'=>'sfsfs'],'',true);
~~~
生成結果
~~~
http://local.cms.com/api.php/index/demo?aaa=1&b=sfsfs
~~~
## 使用路由方式生成
了解這里前先了解路由定義,假設`index`應用配置了以下路由
~~~
Route::rule('/demo','/index/demo');
~~~
根據路由生成地址寫法如下,參數1的地址需要跟上面的參數2保持一致。
~~~
$url = (string)url('/index/demo',['aaa'=>1]);
~~~
結果
~~~
/demo.html?aaa=1
~~~
使用域名
~~~
$url = (string)url('/index/demo',['aaa'=>1],'',true);
~~~
- 簡介
- 下載與安裝配置
- 下載
- 虛擬主機安裝
- 虛擬主機必讀
- 百度云虛擬主機
- 創業云虛擬主機
- Linux下寶塔安裝
- 寶塔一鍵部署
- Windows下寶塔安裝
- phpEnv下安裝
- phpStudy下安裝
- 偽靜態(url重寫)
- 安裝系統
- 調試模式與env文件
- 重新安裝與安裝文件說明
- 后臺使用幫助
- 后臺入口文件
- 首頁面板
- 配置中心
- 站點配置
- 郵件配置
- 附件配置
- 應用中心配置
- 前臺URL規則配置
- SEO設置
- SEO設置-靜態生成
- 文檔屬性
- 站點模塊
- V2.2.2版本 -
- V2.2.3版本 +
- 模型管理
- 欄目管理
- 字段類型與組件
- 前言
- 前端組件
- 動態下拉(selectpage)
- 驗證規則
- text 單行文本
- textarea 多行文本
- radio 單選
- checkbox 復選
- select 下拉列表
- selects下拉列表(多)
- selectpage 動態下拉
- editor編輯器
- image圖片
- images圖片(多)
- number數字
- date日期
- datetime日期和時間
- downfile文件上傳
- downfiles文件上傳(多)
- array 數組(鍵值對)
- 內容管理
- 自定義URL
- 多語言
- 界面多語言
- 內容多語言
- 多語言URL地址
- 附件管理
- 應用中心
- 標簽語法
- 標簽使用必讀
- 列表標簽
- content 內容列表標簽
- contentpage 內容列表分頁
- wfpage 瀑布流分頁
- filter 篩選標簽
- order 排序標簽
- 內容標簽
- guestbook 留言(表單)標簽(廢棄)
- form 表單標簽
- pre 上一篇標簽
- next 下一篇標簽
- prenext 上一篇下一篇(高級)標簽
- fileinfo 獲取附件信息(文件下載)
- 內容分頁
- raw 格式化編輯器文本(即將廢棄)
- 全局標簽
- seo 標簽
- channel 欄目標簽
- arcone 獲取單條文檔
- breadcrumb 面包屑導航標簽
- adv 站點模塊標簽
- date 日期格式化標簽
- substr字符(標題)截取標簽
- volist 循環標簽
- language 獲取語言列表標簽
- lang 特定語言下顯示內容標簽
- query 查詢數據庫內容
- include 導入模板文件標簽
- 原生PHP與php標簽
- map生成位置地圖
- thumb 生成縮略圖
- addons 插件檢測
- 標簽管理
- taglist標簽(獲取標簽列表)
- tagarclist根據標簽獲取文章內容列表
- 導入標簽
- 模板開發
- 1. 創建模板
- 2. 模板目錄結構
- 3. 模板描述文件(重要) info.ini
- 4. 變量輸出格式
- 4. 模板變量
- 5. 獲取站點配置
- 6. 模板界面多語言
- 7. 模板靜態目錄及調用靜態文件
- 8. 模板定義插件事件
- 9. 模板搜索頁
- 10. 模板配置JSON
- 11. 導入演示數據
- 12. 卸載刪除演示數據
- 13. 模板文件打包
- 14. 整站源碼打包
- 插件開發
- 1. 創建插件
- 2. 目錄結構
- 3. 插件名稱類
- 4. 插件信息(info.ini)
- 5. 插件事件
- 6. 配置文件
- 7. install 安裝目錄
- 8. 創建菜單
- 9. 插件控制器
- 10. 插件視圖
- 10-1 插件主題化
- 11. 插件模型
- 12. 模型事件(已廢棄)
- 13. 插件內置函數
- 13-1 插件函數庫
- 14. 插件多語言
- 15. 插件中間件
- 16. 插件路由
- 17. 插件驗證器
- 18. 標簽庫
- 19. 第三方類庫
- 20. 數據庫文件導入
- 插件打包
- 后臺前端使用幫助
- 二次開發幫助(更新中)
- 后臺前端開發幫助
- 路由(鏈接地址、訪問規則)
- URL訪問
- 路由定義
- URL生成
- 會員管理
- 前臺限制頁面登錄或權限控制
- 附錄
- 數據字典
- 助手函數庫
- API接口