小编Tou*_*uki的帖子

Doctrine2 - 一次性多次插入

我是Doctrine的新手,对我来说还有一些模糊的区域.在这种情况下,我使用循环和实体管理器在数据库中插入新记录.它工作正常,但我注意到Doctrine按实体进行一次插入查询,这可能会变得非常庞大.

使用Doctrine2和Symfony 2.3,我想知道如何设置它,这样它只会产生一个带有所有值的插入查询(当然我们只讨论1个实体).

我的意思是改变这个:

INSERT INTO dummy_table VALUES (x1, y1)    
INSERT INTO dummy_table VALUES (x2, y2)
Run Code Online (Sandbox Code Playgroud)

INSERT INTO dummy_table VALUES (x1, y1), (x2, y2)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

$em = $this->container->get('doctrine')->getManager();

foreach($items as $item){
    $newItem = new Product($item['datas']);
    $em->persist($newItem);
}

$em->flush();
Run Code Online (Sandbox Code Playgroud)

php mysql symfony doctrine-orm

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

在Doctrine2中为DECIMAL类型定义注释的正确方法是什么

我的表中有一列,我DECIMAL(19,4)正在为项目创建实体,定义这个字段的正确方法是什么?什么精度规模的参数意味着主义注解

symfony doctrine-orm

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

如何在PHP中启用Socket?

任何人都可以告诉我如何在PHP中启用SOCKET支持吗?

php sockets

18
推荐指数
4
解决办法
7万
查看次数

如何在Symfony2中构建项目?

我想问一下,在Symfony2中使用前端和后端构建项目的最佳方法是什么?在Symfony的其他版本中,这很容易实现,因为您可以创建两个应用程序 - 前端和后端 - 然后所有库/模型将在这些应用程序之间共享.

现在在Symfony2中,一切都是捆绑.对我来说不太清楚的是我怎么能代表"两个"应用程序,前端和后端.我应该创建两个名称空间 - 前端和后端吗?我想将我的实体放在一个地方,而不是从两个应用程序访问它们.

php symfony

18
推荐指数
2
解决办法
6465
查看次数

Twig和Symfony2 - 未找到实体

我有一个与其他一些实体相关的实体.最后,我有一个像tat的对象:

paper.submission.authors
Run Code Online (Sandbox Code Playgroud)

对于某些paper.submission,没有作者,在我的twig模板中,我正在做:

{% for author in paper.submission.authors}
    do something
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

对于没有作者的paper.submission,我得到"未找到实体"异常.

你是否有可能在我的for循环之前测试对象是否存在.

我已经尝试了定义,它总是如此.然后,我尝试过不是null,但这也是生成异常.

非常感谢你提前.

php entity symfony doctrine-orm

15
推荐指数
3
解决办法
2万
查看次数

在AJAX请求之后,Chrome会在HTTP 205响应中下载重新加载的页面

在项目上工作,我只是发出一个AJAX请求来处理一些数据.
完成作业后,服务器将返回HTTP 205 RESET CONTENT响应

我使用此状态代码告诉请求者重置文档视图

这是我使用的代码片段

$.ajax({
    url: '/unread',
    method: 'PUT',
    data: {
        notifications: elements
    }
}).done(function(content, message, xhr) {
    if (205 !== xhr.status) {
        // Generic error message
        return;
    }

    window.location.reload(true)
}).fail(function() {
    // Generic error message
})
Run Code Online (Sandbox Code Playgroud)

这适用于Internet Explorer (8及以上版本),Firefox (28.0)和Opera (12.16).但是Chrome (33.0)和Opera (20.0)不是刷新页面,而是在调用时下载正在重新加载dump的页面的响应内容window.location.reload

这是我尝试过的

  • window.location.href = window.location.href 给出相同的结果
  • history.go(0) 给出相同的结果
  • 如果删除window.location.reload,则不会重新加载任何内容
  • 清除缓存,删除本地状态或进入私有导航不会改变任何内容
  • 如果我更改响应代码(例如204),它可以正常工作

这是正在发生的事情的视觉网络

Chrome即可下载

附加信息(以及更深入的调查)

  • 我在Ubuntu 12.04上
  • 使用Windows 7(相同的chrome版本)可以在另一台计算机上重现错误
  • 使用Debian …

javascript ajax google-chrome http-status-codes

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

如何在Symfony2中注入特定的Doctrine Entity Manager?

在使用相同数据库的几个项目上,我们制作了一个Symfony2 Bundle来映射所有常见功能.

现在的问题是我们有第二个数据库,我们需要相同类型的服务,就像第一个一样.

config.yml

doctrine:
  dbal:
    default_connection: main
    connections:
      main:
        /* ... */
      sub:
        /* ... */

  orm:
      default_entity_manager:   main
      entity_managers:
          main:
              connection:       main
              mappings:
                  AcmeMainBundle: ~
          sub:
              connection:       sub
              mappings:
                  AcmeSubBundle: ~
      auto_generate_proxy_classes: %kernel.debug%
Run Code Online (Sandbox Code Playgroud)

@AcmeMainBundle > services.yml

services:
    mainmanager:
      class: Acme\MainBundle\MainManager
      arguments: [ @doctrine.orm.entity_manager ]
Run Code Online (Sandbox Code Playgroud)

Acme\MainBundle\MainManager

class MainManager
{
    public function __construct(EntityManager $em)
    {
        $em->getRepository('AcmeMainBundle:Foo');
    }
}
Run Code Online (Sandbox Code Playgroud)

这个设置工作正常,我得到所有预期的结果,因为default_entity_manager设置为main正确的EntityManager.

但现在这是问题所在.

@AcmeSubBundle > services.yml

submanager:
  class: Acme\SubBundle\SubManager
  arguments: [ @doctrine.orm.entity_manager ]
Run Code Online (Sandbox Code Playgroud)

Acme\SubBundle\SubManager

class SubManager
{
    public function …
Run Code Online (Sandbox Code Playgroud)

php symfony doctrine-orm

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

如何在Symfony2中创建禁止响应?

我刚刚发现了SensioLabsInsight,并发现了有关如何编写优秀代码的非常有趣的提示.如果对于为什么(或者为什么不)应该使用某些东西有一些解释,那就太好了 - 即使对于像exit和等的基本东西也是如此die.这将有助于我向与我合作的人解释事情.

所以我的问题是针对AccessDeniedHttpException - 它说:

Symfony应用程序不应抛出AccessDeniedHttpException

那么如何从应用程序控制器或EventListener返回403 Forbidden?
什么是最佳做法?

说实话,我以为会是

throw new AccessDeniedHttpException()
Run Code Online (Sandbox Code Playgroud)

因为404你有

throw $this->createNotFoundException()
Run Code Online (Sandbox Code Playgroud)

但看起来我错了.

php symfony

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

在TWIG过滤或运行?

什么时候应该创建一些功能作为过滤器而不是功能,反之亦然?

user | function
Run Code Online (Sandbox Code Playgroud)

VS

function(user)
Run Code Online (Sandbox Code Playgroud)

有人指出文档,但它没有解释何时使用哪个.它确实这样说:

函数支持与过滤器相同的功能,但pre_escape和preserves_safety选项除外.

如果枝条支撑功能就像过滤器一样,它的作用是什么?

symfony twig

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

如何在布局中制作从右到左的动画

我参与了从右到左的问题.我通过单击按钮上的"隐藏"和"可见"布局创建它.但是现在我想要一个动画,这样当我点击按钮时,会发生"从右到左"的动画,当我再次点击按钮时,相同的布局将是"从左到右"的动画,并作为幻灯片布局.

final RelativeLayout rightlayout = (RelativeLayout) findViewById(R.id.relativelayout2);
rightlayout.setVisibility(View.GONE);

Button rightbtn = (Button) findViewById(R.id.righttoleft);

rightbtn.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        System.out.println("clickecd");
        if(keyright == 0) {
            //rightlayout.setVisibility(View.VISIBLE);
            keyright++;
            slideToLeft(rightlayout);

        } else
        {
            //rightlayout.setVisibility(View.GONE);
            TranslateAnimation animate = new TranslateAnimation(0,rightlayout.getWidth(),0,0);
            animate.setDuration(1000);
            animate.setFillAfter(true);
            rightlayout.startAnimation(animate);
            keyright--;
        }

    }
});

// To animate view slide out from left to right
public void slideToRight(View view){
TranslateAnimation animate = new TranslateAnimation(0,view.getWidth(),0,0);
animate.setDuration(500);
animate.setFillAfter(true);
view.startAnimation(animate);

}
// To animate view slide out from right to left …
Run Code Online (Sandbox Code Playgroud)

animation android android-animation

12
推荐指数
2
解决办法
5万
查看次数