0

我有一个未决的 Sonata 电子商务项目,需要了解它是如何工作的。我想管理 Doctrine/mongoDB 中的产品变化,同时将所有其他数据留给 Doctrine/MySQL。所以我用演示部分安装了沙箱,并进行了跟踪。

这使我找到了具有 getSelectSQL() 方法的 ORM\Persiters\BasicEntityPersister。

例如,在编辑旅行产品http://mysite/app_dev.php/admin/sonata/product/product/526/edit时,$conditionSql 变量分配了以下 sql 条件:

t0.id = ? AND t0.product_type IN ('sonata.ecommerce_demo.product.travel')

当我在返回之前输出 getSelectConditionSQL() 方法时,我有

t0.id = ?

所以,问题是:AND t0.product_type IN ('sonata.ecommerce_demo.product.travel')生成的部分在哪里,最重要的是,IN() 语句来自哪里?

我真的必须知道,因为当我尝试将 Document 作为参数时,

<service id="sonata.ecommerce_demo.product.travel.manager" class="Sonata\ProductBundle\Document\ProductManager">
        <argument>Application\Sonata\ProductBundle\Document\Travel</argument>
        <argument type="service" id="doctrine_mongodb" />
    </service>

我最终得到一个空的 IN() 语句。

感谢任何帮助...</p>

4

0 回答 0