- 生成url
use yii\helpers\Url; $url = Url::to(['post/view', 'id' => 100]); Url::to(['post/view', 'id' => 100, '#' => 'content'],true); 带域名http://yii.api.shanliwawa.top:80/post/view?id=100#content // 主页URL:/index.php?r=site%2Findex echo Url::home(); // 根URL,如果程序部署到一个Web目录下的子目录时非常有用 echo Url::base();
- 请求
为空时表示全部
$request = Yii::$app->request;
$get = $request->get('id');
$id = $request->get('id', 1); 不存在为1
$name = $request->post('name');
api中
$params = $request->bodyParams;
// 返回参数 "id"
$param = $request->getBodyParam('id');
if ($request->isAjax) { /* 该请求是一个 AJAX 请求 */ }
if ($request->isGet) { /* 请求方法是 GET */ }
if ($request->isPost) { /* 请求方法是 POST */ }
if ($request->isPut) { /* 请求方法是 PUT */ }
$userHost = Yii::$app->request->userHost;客户主机
$userIP = Yii::$app->request->userIP;客户ip
- 跳转
yii\web\Response::redirect($url)
$this->redirect('http://example.com/new', 301);//控制器中
- session
$session = Yii::$app->session;
// 获取session中的变量值,以下用法是相同的:
$language = $session->get('language');
$language = $session['language'];
$language = isset($_SESSION['language']) ? $_SESSION['language'] : null;
// 设置一个session变量,以下用法是相同的:
$session->set('language', 'en-US');
$session['language'] = 'en-US';
$_SESSION['language'] = 'en-US';
// 删除一个session变量,以下用法是相同的:
$session->remove('language');
unset($session['language']);
unset($_SESSION['language']);
// 检查session变量是否已存在,以下用法是相同的:
if ($session->has('language')) ...
if (isset($session['language'])) ...
if (isset($_SESSION['language'])) ...
// 遍历所有session变量,以下用法是相同的:
foreach ($session as $name => $value) ...
foreach ($_SESSION as $name => $value) ...
- cookie
// 从 "request" 组件中获取 cookie 集合(yii\web\CookieCollection)
$cookies = Yii::$app->request->cookies;
// 获取名为 "language" cookie 的值,如果不存在,返回默认值 "en"
$language = $cookies->getValue('language', 'en');
// 另一种方式获取名为 "language" cookie 的值
if (($cookie = $cookies->get('language')) !== null) {
$language = $cookie->value;
}
// 可将 $cookies 当作数组使用
if (isset($cookies['language'])) {
$language = $cookies['language']->value;
}
// 判断是否存在名为"language" 的 cookie
if ($cookies->has('language')) ...
if (isset($cookies['language'])) ...
// 从 "response" 组件中获取 cookie 集合(yii\web\CookieCollection)
$cookies = Yii::$app->response->cookies;
// 在要发送的响应中添加一个新的 cookie
$cookies->add(new \yii\web\Cookie([
'name' => 'language',
'value' => 'zh-CN',
]));
// 删除一个 cookie
$cookies->remove('language');
// 等同于以下删除代码
unset($cookies['language']);
- 日志
Yii::error('日志文件');
- redis
composer require yiisoft/yii2-redis
// 获取 redis 组件
$redis = Yii::$app->redis;
// 判断 key 为 username 的是否有值,有则打印,没有则赋值
$key = 'username';
if ($val = $redis->get($key);) {
var_dump($val);
} else {
$redis->set($key, 'marko');
$redis->expire($key, 5);
}
文档更新时间: 2020-07-23 22:14 作者:Yoby