小编iii*_*rxs的帖子

Doctrine:cascade ="remove"vs orphanremoval = true

上面两个选项有什么区别?什么时候最好选择每个选项?

doctrine cascade cascading-deletes symfony

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

搜索实现:ElasticSearch vs MongoDB vs Relational Database

我正在设计一个大型旅游市场机构,我在那里拥有 170000 家酒店和 3000 种房型。

我的实体的简单表示是:

Hotel:
    destination: Paris
    rooms:
        room_a:
            type: single
        room_b:
            type: double
RoomType:
    name: double
    paxes(people in room): 2
Run Code Online (Sandbox Code Playgroud)

最基本的搜索操作需要用户提供目的地和所需房间的数量以及每个房间的人数(人)。

在我看来,获取提供所需房间的所有酒店的简单 SQL 查询似乎是一个简单的 SQL 查询,但我担心数据的大小。

到目前为止,我只使用过关系型数据库,而且我之前没有使用过 NoSQL 数据库(例如 MongoDB 和 ElasticSearch),我想知道使用 MongoDB 或 ElasticSearch 与关系型数据库相比会快多少。我已经读过,elasticsearch 的典型用例是全文搜索,但我不知道这样的搜索会快多少。

谢谢

search relational-database mongodb elasticsearch

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

Symfony 4:Var-dumper无法正常工作

我试图在symfony 4中使用var-dumper包中的精彩转储函数,由于某种原因我收到以下错误:

无法启动会话,因为标题已由第181行的"vendor\symfony\var-dumper\Dumper\AbstractDumper.php"发送.

此外,当我尝试在树枝模板中使用{%dump foo%}标记时,我收到一个错误:

未知的"转储"标签.

谁能帮我?

php bundle var-dump symfony twig

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

在MongoDB聚合中的“ addField”操作中使用“ $ count”

我试图找到聚合运算符的正确组合,以将标题为“ totalCount”的字段添加到我的mongoDB视图中。

这将使我获得聚合管道此特定阶段的计数,并将其作为每个文档的计数结果输出:

    {
        $count: "count"
    }
Run Code Online (Sandbox Code Playgroud)

但是,我最终得到了一个具有此结果的文档,而不是我要尝试完成的结果,那就是使该值作为addedField在所有文档中的字段/值,甚至更好地是一个值打印出来打印in addition到返回的文档。

我已经尝试过了,但是它给了我一个错误““无法识别的表达式'$ count'”,“:

    {
        $addFields: {
          "totalCount" : { $count: "totalCount" }
        }
    }
Run Code Online (Sandbox Code Playgroud)

为此,正确的语法结构是什么?是否可以通过这种方式执行此操作,或者是否需要使用$sum或其他一些运算符来执行此操作?我也试过这个:

    {
        $addFields: {
          "totalCount" : { $sum: { _id: 1 } }
        }
    },
Run Code Online (Sandbox Code Playgroud)

...但是它并没有给我任何错误,它只是打印0为每个文档中该字段的值,而不是所有文档的总数。

count mongodb

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

将特征用于服务层:这是不好的做法吗?

我注意到,laravel程序员通常使用特质来在控制器中实现某种类型的依赖注入,而且laravel本身也会使用很多特质来实现对我来说似乎是服务的东西。

我来自symfony,那里的框架本身并没有广泛使用特征,由于这种原因(不是很清晰的设计),我发现使用trait有点奇怪。服务不应该在自己的类中定义吗?将特征用于服务是否可以接受?

php dependency-injection software-design symfony laravel

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

Symfony 4,将实体的属性作为数组键的findAll

从symfony 4中,当我使用findAll方法时,我得到了实体对象的关联数组,其中每个键都是我实体的一个对象

我正在寻找一种获取关联数组的漂亮方法,其中键是我的实体的特定字段的值,而值是我的实体的对象。

实际上,当我使用findAll时,我得到了:

Array
(
    [0] => App\Entity\Foo Object
        (
            [id:App\Entity\Foo:private] => 1
            [name:App\Entity\Foo:private] => nameValue1
        )

    [1] => App\Entity\Foo Object
        (
            [id:App\Entity\Foo:private] => 2
            [name:App\Entity\Foo:private] => nameValue2
        )

    [2] => App\Entity\Foo Object
        (
            [id:App\Entity\Foo:private] => 3
            [name:App\Entity\Foo:private] => nameValue3
        )
        ...
)
Run Code Online (Sandbox Code Playgroud)

但是,我想要这样:

Array
(
    ["nameValue1"] => App\Entity\Foo Object
        (
            [id:App\Entity\Foo:private] => 1
            [name:App\Entity\Foo:private] => nameValue1
        )

    ["nameValue2"] => App\Entity\Foo Object
        (
            [id:App\Entity\Foo:private] => 2
            [name:App\Entity\Foo:private] => nameValue2
        )

    ["nameValue3"] => App\Entity\Foo Object
        (
            [id:App\Entity\Foo:private] => 3
            [name:App\Entity\Foo:private] …
Run Code Online (Sandbox Code Playgroud)

symfony doctrine-orm symfony4

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

Symfony 4-控制台异常事件监听器

我尝试从Symfony 4项目中的Symfony控制台命令处理异常。

这是我在services.yaml中的事件监听器:

kernel.event_listener:
        class: App\Application\EventListener\ExceptionListener
        arguments:
            - '@logger'
            - '@jms_serializer'
            - '@translator.default'
        tags:
            - { name: kernel.event_listener, event: kernel.exception, method: onConsoleException }
Run Code Online (Sandbox Code Playgroud)

这种治疗的标签是什么?

command-line exception symfony

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