Peak Xin

小峰的博客


  • 首页

  • 标签

  • 分类

  • 归档

  • 优秀资源

  • 搜索

Yii2模型自动生成新增和修改时间

发表于 2021-10-18 | 分类于 PHP框架 , Yii |
字数统计: 175 | 阅读时长 ≈ 1

使用 timeStampBehavior

这个行为支持在 Active Record 存储时自动更新它的时间戳属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace app\models\User;

use yii\db\ActiveRecord;
use yii\behaviors\TimestampBehavior;

class User extends ActiveRecord
{
// ...

public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
],
// if you're using datetime instead of UNIX timestamp:
// 'value' => new Expression('NOW()'),
],
];
}
}

以上指定的行为数组:

当记录插入时,行为将当前时间戳赋值给 created_at 和 updated_at 属性;
当记录更新时,行为将当前时间戳赋值给 updated_at 属性。

TimestampBehavior 行为还提供了一个有用的方法 touch(), 这个方法能将当前时间戳赋值给指定属性并保存到数据库:

1
$user->touch('login_time');

Yii2.0框架数据库查询总结

发表于 2021-10-09 | 分类于 PHP框架 , Yii |
字数统计: 1.2k | 阅读时长 ≈ 5

基础查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
User::find()->all();    // 返回所有数据;

User::findOne($id); // 返回 主键 id 为定值 的一条数据;

User::find()->select(['id', 'name'])->one(); // 返回 字段为id和name 的一条数据;
User::find()->select('id,name')->one(); // 返回 字段为id和name 的一条数据;

User::find()->select(['id', 'name'])->all(); // 返回 字段为id和name 的所有数据;

User::find()->where(['age' => '18'])->one(); // 返回 ['age' => '18'] 的一条数据;
User::find()->where(['=', 'age', '18'])->one(); // 返回 ['age' => '18'] 的一条数据;

User::find()->where(['age' => '18'])->all(); // 返回 ['age' => '18'] 的所有数据;

User::find()->where(['in', 'age', ['18', '19']])->all(); // 返回 age 在18和19 的所有数据;
User::find()->where(['age'=>['18', '19']])->all(); // 返回 age 在18和19 的所有数据;

User::find()->orderBy('id DESC')->all(); // 排序查询, DESC:降序,ASC:升序;

User::find()->groupBy('type')->all(); // 根据 type 分组查询 的所有数据;

User::findBySql('SELECT * FROM user')->all(); // 用 sql 语句查询 user 表里面的所有数据;

User::findBySql('SELECT * FROM user')->one(); // 用 sql 语句查询 user 表里面的一条数据;

User::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id'); // 统计符合条件的总条数;

User::find()->andFilterWhere(['like', 'name', '腾哥'])->all(); // 用 like 查询数据,生成 name LIKE '%腾哥%'

User::find()->andFilterWhere(['like', 'name', '%腾哥', false])->all(); // 用 like 查询数据,生成 name LIKE '%腾哥'

User::find()->andFilterWhere(['like', 'name', '腾哥%', false])->all(); // 用 like 查询数据,生成 name LIKE '腾哥%'

User::find()->one(); // 返回一条数据;

User::find()->count(); // 返回记录的数量;

User::find()->average(); // 返回指定列的平均值;

User::find()->min(); // 返回指定列的最小值 ;

User::find()->max(); // 返回指定列的最大值 ;

User::find()->scalar(); // 返回值的第一行第一列的查询结果;

User::find()->column(); // 返回查询结果中的第一列的值;

User::find()->exists(); // 返回一个值指示是否包含查询结果的数据行;

User::find()->batch(10); // 每次取 10 条数据

User::find()->each(10); // 每次取 10 条数据, 迭代查询

User::find()->indexBy('id')->asArray()->all(); // 返回所有数据数组并以ID字段为数组索引,其中ID必须是所查询的字段;
阅读全文 »

使用Git替代由FTP上传更新代码

发表于 2021-09-30 | 分类于 版本管理 |
字数统计: 465 | 阅读时长 ≈ 2

单位以前服务器代码更新使用的是FTP上传,这样无法保证服务器代码和仓库代码保持一致,忍不了了,果断改成git拉取

第一步,有代码的管理仓库

第二步,拉取服务器的代码到本地,然后再提交到代码仓库,保持当前服务器和代码库文件和文件内容一致

第三步,在服务器上安装git,并生成公钥

第四步,把服务器的公钥配置到代码库的部署公钥管理中

第五步,在服务器上代码根目录初始化git

阅读全文 »

Yii2.0框架模型添加/修改/删除数据操作示例

发表于 2021-09-15 | 分类于 PHP框架 , Yii |
字数统计: 602 | 阅读时长 ≈ 2

这篇文章主要介绍了Yii2.0框架模型添加/修改/删除数据操作,结合实例形式分析了Yii2.0使用模型操作数据的添加、修改、删除相关实现技巧,需要的朋友可以参考下

以下实例以模型 User 为例:

添加数据

  1. new一个模型
1
$user = new User();
阅读全文 »

2021-08-13之后 Github新安全提交措施处理

发表于 2021-09-01 | 分类于 版本管理 |
字数统计: 493 | 阅读时长 ≈ 2

往GitHub仓库 push 代码时,一直报如下错误

1
2
3
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: unable to access 'https://github.com/<user>/<repo>/': The requested URL returned error: 403

原来在2021年8月13日之后,如果你还用账户密码来操作 Github 上的仓库,就会收到以上警告

现在提交GitHub仓库代码必须使用个人访问令牌(personal access token),就是把你的密码替换成token

至于为什么要改成使用token,肯定是为了安全角度考虑,具体说明参考官网文档https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations

阅读全文 »

视频地址加密——blob:http 地址的原理及生成方法

发表于 2021-09-01 | 分类于 前端开发 , JavaScript |
字数统计: 904 | 阅读时长 ≈ 3

我们观看视频网站的时候,发现video标签中的src属性值为blob:http,并不是视频的链接地址。

blob是H5的Blob对象数据,具体请看文档,我们可以使用Blob对象隐藏真实的资源路径,在一定程度上可以起数据的加密作用,更多的是为了干扰爬虫。

比如日常使用的一些音频,视频,图片,我们都可以使用其 Blob 二进制数据流来表征数据,而非使用 uri,就像经常用到的 image src 的 dataUrl。

要使用 blob 来表征数据资源,需做到以下两点:

阅读全文 »

MySQL 数据库保留最近7天数据备份

发表于 2021-08-05 | 分类于 数据库 , MySQL |
字数统计: 230 | 阅读时长 ≈ 1

为了防止数据丢失,我们会对数据库进行备份,下面介绍在Linux系统下如何定时备份数据库并保留最近7天的数据备份

参数准备:

  • host:127.0.0.1
  • 数据库用户名:root
  • 数据库密码:123456
  • 数据库名称:test
  • 数据库备份目录:/sqlbackup
  • 数据库备份格式:test_年月日_时分秒.sql

首先写一个命令脚本 data_backup.sh

阅读全文 »

Linux服务器性能查看常用命令

发表于 2021-08-03 | 分类于 运维 |
字数统计: 278 | 阅读时长 ≈ 1

实时显示系统中各个进程的资源占用状况

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

详情

阅读全文 »

ThinkPHP 数据库无法连接 Could not connect: No such file or directory

发表于 2021-08-03 | 分类于 PHP框架 , ThinkPHP |
字数统计: 72 | 阅读时长 ≈ 1

使用ThinkPHP框架数据库无法连接,报错Could not connect: No such file or directory,原因是/tmp/目录下没有mysql.sock文件。

解决方法:

先找到mysql的mysql.sock文件

1
2
# find / -name mysql.sock
/var/lib/mysql/mysql.sock

创建软连接

1
# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

解决PHP报错 cURL error 60: SSL certificate problem: unable to get local issuer certifica

发表于 2021-07-29 | 分类于 后端开发 , PHP |
字数统计: 167 | 阅读时长 ≈ 1

PHP程序在调用https链接时报错”cURL error 60: SSL certificate problem: unable to get local issuer
certifica”,这是因为没有配置信任的服务器HTTPS验证。默认情况下,cURL被设为不信任任何CAS,因此浏览器无法通过HTTPS访问你服务器

解决方法:

阅读全文 »
1234…18
Peak Xin

Peak Xin

Always keep a learning heart.

179 日志
35 分类
92 标签
RSS
GitHub E-Mail Twitter StackOverflow GitLab Travis Gitee SegmentFault CSDN
推荐网址
  • 阮一峰的个人网站
  • 廖雪峰的官方网站
  • 韩天峰(Rango)的博客
© 2022 Peak Xin 鲁ICP备15013472号-3
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4
本博客 由 Peak Xin 采用 知识共享 署名 4.0 国际 许可协议进行许可。
站点总访客数: 站点总访问量:
0%