小编php*_*rpa的帖子

使用Composer时,Symfony2项目的大小太大

首先我从官方网站下载了Symfony2框架(标准版),安装完成后,整个Symfony项目共计约16MB.
之后,我想使用Composer和create-project命令启动另一个Symfony2项目.安装后,该应用程序有~130MB!
这两个项目之间存在巨大的差异.
我想在使用Composer时我下载了一些额外的软件包,但是大小超过100MB的差异似乎很大.
我检查了两个项目,他们有相同的目录结构(即我没有在更大的项目中找到一些额外的目录).
那么,当我使用Composer时,为什么会有这么大的差异以及我做错了什么呢?

symfony composer-php

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

Symfony2 Doctrine事件监听器prePersist无法正常工作

我在实现Doctrine EventListener时遇到问题.创建新发票时,InvoiceType表单中包含一系列项目(标题,价格,金额).对于发票,在price现场,我想插入所有购买产品的总和.在ReportListener中,我得到了总和,但EventListener没有预先保存数据和代码只是停止而没有显示错误(程序$entityManager->persist($entity)在ReportListener中执行时停止)

这里是一些代码

控制器

class InvoiceController extends Controller
{
    public function createAction(Request $request)
    {
        $em = $this->getDoctrine()->getManager();
        $company = $em->getRepository('DemoBundle:Company')
                      ->findOneByUser($this->getUser()->getId());
        $invoice = new Invoice();
        $item = new Item();
        $form = $this->createForm(new InvoiceType($company->getId()), $invoice);

        if($request->isMethod('POST')){
            if($form->isValid()){
                $em->persist($invoice);
                $em->flush();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ReportListener的

namespace Demo\Bundle\EventListener;

use Doctrine\ORM\Event\LifecycleEventArgs;
use Demo\Bundle\Entity\Invoice;

class ReportListener
{
    public function prePersist(LifecycleEventArgs $args)
    {
        $entity = $args->getEntity();
        $em = $args->getEntityManager();

        $priceTotal = 0;
        foreach ($entity->getItems() as $item)
        {
            $price = &$priceTotal; …
Run Code Online (Sandbox Code Playgroud)

event-listener symfony doctrine-orm

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

如何使div在中心div内左/右浮动


当我想在中心父div中向左或向右浮动子div时,整个设计向左或向右移动,具体取决于浮动.那么,如何浮动子div并使居中的父div成为中心.

HTML:

<div id="parent">
<div id="child-left"></div>
<div id="child-right"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#parent{
    padding: 0 auto;
    width: 600px;
}
#child-left{
    float: left;
    width: 300px;
}
#child-right{
    float: right;
    width: 300px;
}
Run Code Online (Sandbox Code Playgroud)



为什么父母div左/右,不留在中心?以及如何让它留在中心?

html css center

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

Symfony2表单query_builder - 允许null

在Symfony2表单中,当试图获取实体时,Symfony期望接收QueryBuilder对象,但有时没有返回实体.在这种情况下,会出现一条错误消息:

期望类型为"Doctrine\ORM\QueryBuilder"的参数,给出"NULL"

如何使query_builder允许选项没有可用的实体.

$builder
    ->add('client', 'entity', array(
        'class'         => 'Faktura\FakturaBundle\Entity\Client',
        'query_builder' => function(\Web\MyBundle\Repository\ClientRepository $er) use ($company){
            return $er->getClients($company);
    ))
;
Run Code Online (Sandbox Code Playgroud)

ClientRepository.php

public function getClients($company)
{
    $qb = $this->createQueryBuilder('c')
        ->select('c')
        ->where('c.company = :company')
        ->setParameter('company', $company)
        ->getQuery();

    return $qb->getResult();
}
Run Code Online (Sandbox Code Playgroud)

实际上,它只是基本$er->findBy(array('company' => $company))方法,但我使用自定义getClients()方法

query-builder symfony-forms symfony doctrine-orm

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