热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于yii:yii-速查手册

生成url{代码}申请{代码}跳转{代码}session{代码}cookie{代码}日志{代码}数据库{代码}数据库模型操作{代码}redis{代码}
生成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);
}

推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • XMLhttpREquest_Ajax技术总结之XmlHttpRequest
    Ajax1、 什么是ajax   ... [详细]
  • 我将SpringMVC升级到Spring3.2.5.我的一些剩余调用即使存在,也会返回无法识别的字段异常.这是错误.Resolvingexceptionfrom ... [详细]
  • asp.net(vb脚本)如何获取xml的节点值?xmlversion1.0encodingutf-8?rootimageimagemenusmenuurl#frame_paren ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
author-avatar
七楼居民_651
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有