yii 速查手册

Posted zhiqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yii 速查手册相关的知识,希望对你有一定的参考价值。

生成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(\'日志文件\');

数据库

查询多条
$posts = Yii::$app->db->createCommand(\'SELECT * FROM post\')->queryAll();
查询一条
$post = Yii::$app->db->createCommand(\'SELECT * FROM post WHERE id=1\')->queryOne();
返回一列
$titles = Yii::$app->db->createCommand(\'SELECT title FROM post\')->queryColumn();
返回标量
$count = Yii::$app->db->createCommand(\'SELECT COUNT(*) FROM post\')->queryScalar();
绑定参数
$post = Yii::$app->db->createCommand(\'SELECT * FROM post WHERE id=:id AND status=:status\')
->bindValue(\':id\', $_GET[\'id\'])
->bindValue(\':status\', 1)
->queryOne();

非查询
Yii::$app->db->createCommand(\'UPDATE post SET status=1 WHERE id=1\') ->execute();
Yii::$app->db->createCommand()->insert(\'user\', [
\'name\' => \'Sam\',
\'age\' => 30,
])->execute();
Yii::$app->db->createCommand()->update(\'user\', [\'status\' => 1], \'age > 30\')->execute();
Yii::$app->db->createCommand()->delete(\'user\', \'status = 0\')->execute();

数据库模型操作

one(): 根据查询结果返回查询的第一条记录。
all(): 根据查询结果返回所有记录。
count(): 返回记录的数量。
sum(): 返回指定列的总数。
average(): 返回指定列的平均值。
min(): 返回指定列的最小值。
max(): 返回指定列的最大值。
scalar(): 返回查询结果的第一行中的第一列的值。
column(): 返回查询结果中的第一列的值。
exists(): 返回一个值,该值指示查询结果是否有数据。
where(): 添加查询条件
with(): 该查询应执行的关系列表。
indexBy(): 根据索引的列的名称查询结果。
asArray(): 以数组的形式返回每条记录。

Customer::find()->one();    此方法返回一条数据;

Customer::find()->all();    此方法返回所有数据;

Customer::find()->count();    此方法返回记录的数量;

Customer::find()->average();    此方法返回指定列的平均值;

Customer::find()->min();    此方法返回指定列的最小值 ;

Customer::find()->max();    此方法返回指定列的最大值 ;

Customer::find()->scalar();    此方法返回值的第一行第一列的查询结果;

Customer::find()->column();    此方法返回查询结果中的第一列的值;

Customer::find()->exists();    此方法返回一个值指示是否包含查询结果的数据行;
Customer::find()->asArray()->one();    以数组形式返回一条数据;

Customer::find()->asArray()->all();    以数组形式返回所有数据;
Customer::find()->where($condition)->asArray()->one();    根据条件以数组形式返回一条数据;

Customer::find()->where($condition)->asArray()->all();    根据条件以数组形式返回所有数据;
Customer::find()->where($condition)->asArray()->orderBy(\'id DESC\')->all();    根据条件以数组形式返回所有数据,并根据ID倒序;

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);
}

以上是关于yii 速查手册的主要内容,如果未能解决你的问题,请参考以下文章

Kafka3.x核心知识速查手册-一快速上手篇

Kafka3.x核心知识速查手册-一快速上手篇

Linux速查手册

awk速查手册

mysql速查手册

Linux指令范例速查手册