我使用querybuilder应用以下查询但不知何故many2many关系没有按预期工作.
$shopData = $sm->createQueryBuilder()
->select('v')
->from('AdminBundle:Voucher','v')
->innerJoin('v.shop', 's')
->leftJoin('AdminBundle:VoucherProgram', 'vp', \Doctrine\ORM\Query\Expr\Join::ON, 'vp.id = v.program_id')
->leftJoin('AdminBundle:shopHistory', 'sh', \Doctrine\ORM\Query\Expr\Join::ON, 'sh.shop = s.id')
->where('s.shopStatus = :shopStatus')
->setParameter('shopStatus', Shop::SHOP_ACTIVATED)
->andWhere('s.highlightedHome = :highlightedHome')
->setParameter('highlightedHome', Shop::SHOP_HIGHLIGHTED_HOME)
->andWhere('s.offers = \'voucher\'')
->setFirstResult(0)
->setMaxResults(6)
->addOrderBy('v.discount_amount', 'DESC')
->groupBy('sh.shop')
->getQuery()
->getSql();
Run Code Online (Sandbox Code Playgroud)
生成的查询如下所示:
SELECT v FROM AdminBundle:Voucher v INNER JOIN v.shop s LEFT JOIN AdminBundle:VoucherPrograms vp ON vp.id = v.program_id LEFT JOIN AdminBundle:shopHistory sh ON sh.shop = s.id WHERE s.shopStatus = :shopStatus AND s.highlightedHome = :highlightedHome AND s.offers = 'voucher' GROUP BY …Run Code Online (Sandbox Code Playgroud) 主要是,这个问题是针对Magento 2的git特有的.我有一个有效的Magento 2项目,我使用github repo安装了一个扩展 - https://github.com/Adyen/adyen-magento2.
在我目前的情况下,我必须调试该扩展,并且必须检查我的远程服务器.我已经分配了那个repo,并为例如cc_debug.patch文件创建了一个补丁.现在,我已将该补丁添加到本地服务器上的根目录.然后,如果我使用git apply --apply --directory=vendor/adyen/module-payment/ cc_debug.patch它执行补丁,那就做技巧并修改供应商目录下的文件.我将更改推送到repo,并且由于部署脚本,该文件已移至远程服务器.
现在,我只通过远程服务器进行读取访问,并且没有初始化.git.如果我确实在远程服务器上应用补丁,它肯定会被执行但是如果我下次推送,由于部署脚本供应商将被重新生成并且补丁应用的更改将丢失.据我所知,这里有一些勾引图片,但我对钩子缺乏了解.
我假设我必须在我的git local repo中创建post-deploy hook,如下所示:
#!/bin/sh
patchfile = "cc_debug.patch"
patchingdirectory = "vendor/adyen/module-payment/"
if [ -f "$patchfile" ]
then
git apply --apply --directory=$patchingdirectory $patchfile
fi
Run Code Online (Sandbox Code Playgroud)
现在,我无法将该钩子推送到远程仓库(甚至没有初始化),因此这个解决方案对我不起作用.或者我知道更新后是特定于远程的东西(如果我错了就纠正我)所以我猜测由于这个钩子会在远程服务器上执行更改但是如果我再次在另一台本地机器上克隆,我必须再次创建post-deploy补丁,这不是理想的情况.
每次部署脚本执行时,应用补丁的原因是什么?[注意:部署脚本不在我手中,因为它是由Magento通过github提供的webhooks执行的.所以,我假设必须有一些webhook使用我必须应用补丁,这又是我缺乏知识.]我相信有人和我的情况相同.请指导我.TIA.