小编Het*_*ett的帖子

Yii2:检查数据库中是否存在ActiveRecord模型

如何在DB中检查模型的存在?在Yii 1版本中它是如此 User::model()->exist()

php yii2

24
推荐指数
1
解决办法
3万
查看次数

Yii2:updateAll具有多个条件

如何根据我的条件更新所有记录?(我的代码不起作用)

$condition[] = ['>', 'position', $old_position];
$condition[] = ['<=', 'position', $new_position];
$condition[] = ['in', 'id', $ids];

Video::updateAll([
    'position' => new \yii\db\Expression('@a := @a + 1'),
], $condition);
Run Code Online (Sandbox Code Playgroud)

activerecord yii2

9
推荐指数
1
解决办法
1万
查看次数

从mongo shell获取MongoBinData值

我在mongo中保存IP

$db = new MongoClient();

$db->selectCollection('test', 'test')->insert([
    'ip'=> new MongoBinData(inet_pton('127.0.0.1'), MongoBinData::BYTE_ARRAY),
]);
Run Code Online (Sandbox Code Playgroud)

蒙戈贝壳

> db.test.find()
{ "_id" : ObjectId("54e1aeeb84663f3407000030"), "ip" : BinData(2,"BAAAAH8AAAE=") }
Run Code Online (Sandbox Code Playgroud)

如何在mongo shell中获取初始数据?

php mongodb

8
推荐指数
1
解决办法
457
查看次数

在shell命令中如何更改文件?

我有shell命令生成的文件

- stat: path=/etc/swift/account.ring.gz get_md5=yes
  register: account_builder_stat

- name: write account.ring.gz file
  shell: swift-ring-builder account.builder write_ring <--- rewrite account.ring.gz
    chdir=/etc/swift
  changed_when: ??? account_builder_stat.changed ??? <-- no give desired effect
Run Code Online (Sandbox Code Playgroud)

如何检查文件是否已更改?

ansible

6
推荐指数
1
解决办法
3128
查看次数

PhpDoc:受保护的属性

是否可以使用 PhpDoc 声明protectedprivate类@property?

/**
  * Class Node
  * @package app\models
  * @property string $name
  */
class Node
{

}
Run Code Online (Sandbox Code Playgroud)

php phpdoc

5
推荐指数
1
解决办法
2102
查看次数

是否可以从模拟方法返回模拟?

我有工厂

class DocumentManagerFactory
{
    ....   
    public function createDocumentManager(): DocumentManager
    {
        return DocumentManager::create($this->client, $this->configuration);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想嘲笑DocumentManager返回的createDocumentManager

    $dmStub = $this->createMock(DocumentManager::class)
        ->method('refresh')
        ->willReturnArgument(1);

    $dmFactoryStub = $this->createMock(DocumentManagerFactory::class)
        ->method('createDocumentManager')
        ->willReturn($dm);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

方法 createDocumentManager 可能不会返回 PHPUnit\Framework\MockObject\Builder\InitationMocker 类型的值,其返回声明为“: Doctrine\ODM\MongoDB\DocumentManager”

是否可以?

phpunit

5
推荐指数
1
解决办法
1315
查看次数

如何通过 webpack 4 压缩图像

我需要像 TinyPNG 一样压缩图像并将压缩图像保存在 dist 文件夹中。我使用 webpack 4 并找到了 imagemin-webpack。但我不明白有什么用:插件还是加载器?请帮助为此任务进行配置。

let path = require('path');
let ExtractTextPlugin = require("extract-text-webpack-plugin");
let {imageminLoader} = require("imagemin-webpack");
let imageminGifsicle = require("imagemin-gifsicle");

let conf = {
    entry: './src/index.js',
    output: {
        path: path.resolve(__dirname, './dist/'),
        filename: 'main.js',
        publicPath: 'dist/'
    },
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ExtractTextPlugin.extract({
                    fallback: "style-loader",
                    use: [
                        {
                            loader: "css-loader",
                            options: {
                                minimize: true,
                                sourceMap: true
                            }
                        }
                    ]

                })
            },
            {
                test: /\.(jpe?g|png|gif|svg)$/i,
                use: [
                    {
                        loader: "file-loader"
                    },
                    {
                        loader: imageminLoader, …
Run Code Online (Sandbox Code Playgroud)

webpack webpack-4

4
推荐指数
1
解决办法
7728
查看次数

Spring shell 阻止测试

当我将 spring shell 添加到项目中时

    <dependency>
        <groupId>org.springframework.shell</groupId>
        <artifactId>spring-shell-starter</artifactId>
        <version>2.0.1.RELEASE</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

测试开始挂起并且永远不会结束。停止后我在日志中看到

2020-02-22 20:00:14.271  INFO 9812 --- [           main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService 'taskScheduler'
2020-02-22 20:00:14.933  WARN 9812 --- [           main] org.jline                                : Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)
2020-02-22 20:00:15.229  INFO 9812 --- [           main] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [192.168.1.10:5672]
2020-02-22 20:00:15.312  INFO 9812 --- [           main] o.s.a.r.c.CachingConnectionFactory       : Created new connection: rabbitConnectionFactory#4c32d208:0/SimpleConnection@608c36a6 [delegate=amqp://admin@192.168.1.10:5672/, localPort= 65404]
2020-02-22 20:00:15.401  INFO …
Run Code Online (Sandbox Code Playgroud)

spring spring-boot

4
推荐指数
1
解决办法
1000
查看次数

JPA:一对一关系所有者

我想通过User.idAddress.user_id列在两个模型之间建立关系。

\n\n

我创建了两个具有一对一关系的表:

\n\n
@Entity()\n@Table(name = "user")\npublic class User {\n    @Id\n    @GeneratedValue(strategy = GenerationType.IDENTITY)\n    private Integer id;\n\n    @OneToOne(cascade = CascadeType.ALL)\n    @JoinColumn(name = "id", referencedColumnName = "user_id")\n    private Address address;\n\n    public int getId() {\n        return id;\n    }\n\n    public void setId(Integer id) {\n        this.id = id;\n    }\n\n    public Address getAddress() {\n        return address;\n    }\n\n    public void setAddress(Address address) {\n        this.address = address;\n    }\n\n}\n\n\n\n@Entity\n@Table(name = "address")\npublic class Address extends com.mezoline.domain.common.Entity {\n\n    @Id\n    @GeneratedValue\n    private int id;\n\n    @OneToOne(mappedBy = "address")\n …
Run Code Online (Sandbox Code Playgroud)

java orm hibernate jpa

2
推荐指数
1
解决办法
3757
查看次数

更新upsert:date_start字段

我有2个日期字段:date_start和date_end

$criteria = [
    '_id'=>$data->thread,
    'download_id'=>$data->id,
    'ip'=>new MongoInt32(Helper::aton($data->remote_addr)),
];

$status = $nodeThreadsCollection->update($criteria,
    [
        '$set'=>[
            'disconnected'=>(bool)$data->disconnected,
            'date_end'=>new MongoDate(),
        ],
        '$inc'=>[
            'bytes_send'=>new MongoInt64($data->bytes_send),
        ]
    ],[
        'upsert'=>true,
        'w'=>1, 
    ]
);

if(isset($status['updatedExisting']) && !$status['updatedExisting']) {
    $nodeThreadsCollection->update($criteria,
        [
            '$set'=>[
                'date_start'=>new MongoDate(),
            ],
        ],[
            'w'=>0,
        ]
    );
}
Run Code Online (Sandbox Code Playgroud)

但它需要writeConcern = 1来获取插入状态并进行二次查询.如何在一个查询中创建它?

php mongodb

1
推荐指数
1
解决办法
116
查看次数