thinkphp6 with sql执行结果

作者: 分类: php 时间: 2023-02-24 评论: 暂无评论
class UserVip extends Model
{

}
class User extends Model
{

    public function vip(){
        return $this->hasOne("UserVip",'user_id','user_id');
    }
}

User::with('vip')->whereIn('user_id',['1001691305','1000100023'])->select();

Sql执行结果:

[sql] SELECT * FROM `yoshop_user` WHERE  `user_id` IN (1001691305,1000100023) 
[sql] SELECT * FROM `yoshop_user_vip` WHERE  `user_id` IN (1000100023,1001691305)

Docker 容器日志查看

作者: 分类: php 时间: 2023-02-13 评论: 暂无评论

1、容器日志查看命令

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
  -n, --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)

复制代码

2、命令参数的使用场景
1)按照开始时间、结束时间查看容器日志

例如,查看 influxdb 容器最近20分钟到最近10分钟内的日志信息,命令如下:

docker logs --since="20m" --until="10m" influxdb

说明:--since 传入开始时间,--until 传入结束时间。

2)使用UTC格式时间查看容器日志

例如,查看 influxdb 容器自 2022-10-10T02:31:00Z 开始往后的日志信息,命令如下:

docker logs --since="2022-10-10T02:31:00Z" influxdb

3)显示日志的时间戳

例如,查看 influxdb 容器最近20分钟到最近10分钟内的日志信息(显示时间戳),命令如下:

docker logs --since="20m" --until="10m" -t influxdb

说明: -t 或者 --timestamps 参数用于显示时间戳。

4)查看最近n行的日志

例如,查看 influxdb 容器最近20分钟到最近10分钟内,最近100行的日志信息(显示时间戳),命令如下:

docker logs --since="20m" --until="10m" -t --tail 100 influxdb

或者

docker logs --since="20m" --until="10m" -t -n100 influxdb

说明:--tail 100 或者 -n100 表示最近 100行。

5)跟踪日志输出

例如,查看 influxdb 容器最近20分钟以后实时的日志信息(显示时间戳),命令如下:

docker logs -f --since="20m" -t  influxdb5

说明:-f 或者 --follow 表示跟踪日志输出。

golang new

作者: 分类: go 时间: 2023-02-01 评论: 暂无评论

在 golang 中 new 是另外一种创建变量的方式。通过 new(T) 可以创建 T 类型的变量(这里 T 表示类型),初始值为 T 类型的 零值返回值为其地址 (地址类型是 *T)。

package main

import "fmt"

func newInt1() *int {

return new(int)

}

func newInt2() *int {

var a int
return &a

}

func main() {

p := newInt1()
q := newInt2()
fmt.Println(p, q) // 0xc00001c0b8 0xc00001c0c0

}