프로젝트에서는 Yii2의 내장 URL 도구 클래스를 사용하여 링크를 생성하는 것이 좋습니다. 이는 전체 사이트의 URL 동작을 매우 편리하게 관리할 수 있습니다. 예를 들어, 구성. URL의 고급 사용법에 대해서는 공식 문서를 참조하세요. 이 문서에서는 Yii2가 URL을 생성하는 몇 가지 방법만 소개합니다.
Yii2 기본 URL 링크 형식
Yii2 기본 URL 링크 형식은 URL 미화를 켰을 때의 형식을 말합니다.
하위 모듈이 활성화되지 않은 URL 형식:
// 参数 r 中的 article 表示控制器, view 表示动作 http://www.example.com/index.php?r=article/view&id=100
하위 모듈이 활성화된 URL 형식:
// 参数 r 中的 kernel 表示子模块 http://www.example.com/index.php?r=kernel/article/view&id=100
Yii2 내장 URL 생성 도구
URL 관리자: urlManager
URL 도우미 클래스 : yiihelpersUrl
내장된 URL 생성 도구를 사용하면 소스 코드 변경 없이 구성을 통해 전체 사이트의 URL을 아름답게 꾸밀 수 있습니다
URL Manager
URL Manager는 이름 그대로 내장된 애플리케이션입니다. urlManager라는 구성요소입니다. URL은 다음 두 가지 방법으로 웹 애플리케이션과 콘솔 애플리케이션에서 생성할 수 있습니다.
Yii::$app->urlManager->createUrl($params)
Yii::$app-> ->createAbsoluteUrl($params, $schema = null)
createUrl
메소드는 루트 디렉토리의 상대 경로를 생성합니다. 예: /index.php?r=article/viewcreateUrl
方法生成根目录的相对路径,例如:/index.php?r=article/view
createAbsoluteUrl()
方法生成的是绝对路径,例如:http://www.example.com/index.php?r=article/view
常见的利用 URL 管理器创建 URL 的例子:
// URL:/index.php?r=article/view \Yii::$app->urlManager->createUrl('article/view'); // URL:/index.php?r=article/view&id=2 \Yii::$app->urlManager->createUrl(['article/view','id'=>2]); // URL: http://www.example.com?r=kernel/article/view echo \Yii::$app->urlManager->createAbsoluteUrl('kernel/article/view');
URL 助手类
相对于 URL管理器,使用 yiihelpersUrl
助手类可大大简化 URL 的创建。
1. 假设当前 URL /index.php?r=kernel/article/view&id=10
,以下说明 URL 助手类 Url::to()
是如何工作的(不推荐):
// 创建当前 URL // 显示:/?r=kernel/article/view&id=10 echo Url::to(); // 创建当前 URL // 显示:http://www.example.com/?r=kernel/article/view&id=10 echo Url::to('', true); // 字符参数,没啥用 // 显示:kernel/article/view echo Url::to('kernel/article/view'); // 创建路由,数组参数的自动调用 Url::toRoute(...) // 显示:/index.php?r=kernel/article/view echo Url::to(['article/view']);
2. 假设当前 URL /index.php?r=kernel/article/view&id=10
,以下说明 URL 助手类 Url::toRoute()
方法是如何工作的(推荐):
// 创建当前路由(仅继承参数r的值) // 显示:/index.php?r=kernel/article/view echo Url::toRoute([]); // 相同的模块和控制器,不同的动作(仅继承参数r的值) // 显示:/index.php?r=kernel/article/list echo Url::toRoute('list'); // 相同的模块和控制器,不同的动作(仅继承参数r的值) // 显示:/index.php?r=kernel/article/list&cat=contact echo Url::toRoute(['list','cat'=>10]); // 相同模块,不同控制器和动作(仅继承参数r的值) // 显示:/index.php?r=kernel/product/index echo Url::toRoute('product/index'); // 绝对路由,不管是被哪个模块和控制器调用 // 显示:/index.php?r=product/index echo Url::toRoute('/product/index'); // 控制器动作 `actionListHot` 的 URL 格式(仅继承参数r的值,区分大小写) // 显示:/index.php?r=kernel/article/list-hot echo Url::toRoute('list-hot'); // 从别名中获取 URL // 显示:http://www.baidu.com/ Yii::setAlias('@baidu', 'http://www.baidu.com/'); echo Url::to('@baidu');
3. 假设当前 URL /index.php?r=kernel/article/view&id=10
,以下说明 URL 助手类 Url::current()
createAbsoluteUrl()
메서드는 절대 경로를 생성합니다. 예: http://www.example.com/index.php?r=article/view
Common URL 관리 URL 관리자를 사용하여 URL을 생성하는 예:
// 创建当前 URL(包括路由和参数) // 显示:/?r=kernel/article/view&id=10 echo Url::current(); // 移除参数 id // 显示:/?r=kernel/article/view echo Url::current(['id'=>null]); // 新增参数 cat // 显示:/?r=kernel/article/view&id=10&cat=2 echo Url::current(['cat'=>2]);
URL 관리자와 관련하여 yiihelpersUrl
도우미 클래스를 사용하면 URL 생성을 크게 단순화할 수 있습니다. . 1. 현재 URL /index.php?r=kernel/article/view&id=10
을 가정하고, 다음은 URL 도우미 클래스 Url::to()
)를 설명합니다. > 작동함(권장되지 않음):
URL /index.php?r=kernel/article/view&id=10
이 URL 도우미 클래스에 대한 다음 설명이라고 가정합니다. Url:: toRoute()
메소드 작동 방식(권장): 🎜🎜🎜🎜rrreee🎜3 현재 URL /index.php?r=kernel/article/view&id=10을 가정합니다.
, 다음과 같이 URL 도우미 클래스 Url::current()
메서드 작동 방식을 설명합니다(권장): 🎜🎜🎜🎜rrreee🎜관련 권장 사항: 🎜🎜🎜🎜php 요청 url 메서드 요약 🎜🎜🎜🎜javascript URL을 json 형식으로 파싱하는 두 가지 방법🎜🎜🎜🎜Laravel에서 url()의 루트 주소를 수정하는 방법에 대한 자세한 설명🎜🎜위 내용은 URL을 생성하는 Yii2 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!