ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
~~~ 生成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('日志文件'); ~~~