<?php
namespace
app\controllers
;
use
yii\web\Controller
;
use
yii\helpers\ArrayHelper
;
use
yii\helpers\StringHelper
;
use
yii\helpers\Url
;
use
yii\helpers\Html
;
class
HelperController
extends
Controller
{
/**
* 测试调用 ArrayHelper 帮助类
*/
public
function
actionArray
()
{
$arr
=
[
[
'id'
=>
11
,
'name'
=>
'jack'
,
'age'
=>
30
],
[
'id'
=>
12
,
'name'
=>
'rose'
,
'age'
=>
21
],
[
'id'
=>
13
,
'name'
=>
'lily'
,
'age'
=>
28
],
];
// $res = ArrayHelper::getColumn($arr, 'age');
// print_r($res);
// $res = ArrayHelper::map($arr, 'id', 'name');
// var_dump($res);
ArrayHelper
::
multisort
(
$arr
,
'age'
,
SORT_ASC
);
// 二维数组按照键名排序(很常用)
echo
json_encode
(
$arr
);
}
/**
* 测试调用 StringHelper 帮助类
*/
public
function
actionString
()
{
$string
=
'这是一个string测试'
;
echo
StringHelper
::
truncate
(
$string
,
6
,
'...'
);
echo
'<br>'
;
var_dump
(
StringHelper
::
startsWith
(
$string
,
'这是'
));
}
/**
* 测试调用 Url 帮助类
*/
public
function
actionUrl
()
{
// toRoute方法,根据路由规则,生成url地址
// 1.传字符串
echo
Url
::
toRoute
(
'site/index'
)
.
'<br>'
;
// 2.传数组
echo
Url
::
toRoute
([
'site/index'
,
'id'
=>
'1'
,
'src'
=>
'ref1'
,
'#'
=>
'name'
])
.
'<br>'
;
// 3.传两个参数,第二个参数指定是否为绝对url(或协议类型)
echo
Url
::
toRoute
(
'site/index'
,
true
)
.
'<br>'
;
echo
Url
::
toRoute
(
'site/index'
,
'https'
)
.
'<br>'
;
// 4.传路径别名
\Yii
::
setAlias
(
'posts'
,
'site/index'
);
// 设置路径别名(局部的)
echo
Url
::
toRoute
(
'@posts'
)
.
'<br>'
;
// to方法
echo
Url
::
to
([
'site/index'
])
.
'<br>'
;
echo
Url
::
to
()
.
'<br>'
;
echo
Url
::
to
(
'images/logo.gif'
)
.
'<br>'
;
echo
Url
::
to
(
'@web/images/logo.gif'
)
.
'<br>'
;
echo
Url
::
to
(
'@web/images/logo.gif'
,
true
)
.
'<br>'
;
// 带域名的资源地址
}
/**
* 查看 Yii 中 已经设置好的路径别名(全局的)
*/
public
function
actionAlias
()
{
echo
\Yii
::
getAlias
(
'@app'
)
.
'<br>'
;
echo
\Yii
::
getAlias
(
'@runtime'
)
.
'<br>'
;
echo
\Yii
::
getAlias
(
'@vendor'
)
.
'<br>'
;
echo
\Yii
::
getAlias
(
'@bower'
)
.
'<br>'
;
echo
\Yii
::
getAlias
(
'@npm'
)
.
'<br>'
;
echo
\Yii
::
getAlias
(
'@webroot'
)
.
'<br>'
;
echo
\Yii
::
getAlias
(
'@web'
)
.
'<br>'
;
}
/**
* 测试调用 Html 帮助类
*/
public
function
actionHtml
()
{
// encode方法,将html特殊字符编码为html实体
$content
=
'<, >, ", \', \\'
;
echo
Html
::
encode
(
$content
)
.
'<br>'
;
// decode方法,将html实体解码为html特殊字符
echo
Html
::
decode
(
$content
)
.
'<br>'
;
}
}