小编Bap*_*apt的帖子

Symfony 2.5:实体类型,防止在提交表单时获取所有记录

我有一个包含一些经典字段的表单,以及一个用户实体的下拉列表(使用 AngularJs 处理,而不是使用经典表单视图)。当我提交表单时,整个对象(以及通过下拉列表选择的用户)将通过 Ajax 请求发送到我的控制器。

class MyRestController{

    public function MyRestAction(...){
        ...
        $myObject = new MyObject();

        $myForm = $this->createForm(new MyFormType(), $myObject);

        $myForm->handleRequest($request);

        ...
    }
}

class MyFormType extends AbstractType{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add(...),
            ->add(...),
            ->add(...),
            ->add('user', 'entity', array(
                'required' => true,
                'class' => 'User',
                'property' => 'id',
            ))
        ;
            ...
    }

}
Run Code Online (Sandbox Code Playgroud)

然后我保留整个对象并刷新它。它工作完美。但这个过程实在是太慢了……

当调用 getChoicesForValue 函数 (EntityChoiceList.php) 时,问题来自于 handleRequest 函数。就我而言,该流程对 User 实体执行 findAll() 请求,从数据库中获取所有记录(数千条)。

在此函数中,有一个条件检查 EntityChoiceList 是否具有这样的实体加载器:

if ($this->idAsValue && $this->entityLoader) {
    // do a findById() …
Run Code Online (Sandbox Code Playgroud)

php forms performance entity symfony

6
推荐指数
1
解决办法
655
查看次数

PhpStorm - 如果名称为“myclass.php”,则无法打开 PHP 文件

我对 PhpStorm 有一个非常疯狂的问题,我不知道如何解决。

我有一个名为“myclass.php”的空 php 文件,它似乎无法被 PhpStorm 识别,因为图标是“?”。

当我尝试用 PhpStorm 打开这个文件时,鼠标开始闪烁,我的 IDE 冻结,直到我重新启动它......但是,我可以从任何其他 IDE(如记事本)打开该文件。此外,我是唯一遇到此问题的人,因为我的其他团队工作人员可以使用他们的 PhpStorm IDE 打开该文件。

但是,当我将文件重命名为“myclass2.php”时,图标会像我的其他 php 文件一样发生变化,并且我可以打开它。

正是在文件名为“myclass.php”时触发了问题。

我试过 :

  • 文件/无效缓存/重启
  • 卸载/安装 PhpStorm
  • 将文件移动到另一个文件夹
  • 删除/重新创建我的项目
  • 删除/创建与另一个 IDE 同名的文件...
  • 在另一个项目中创建相同的文件
  • 搜索编码问题

有人知道如何解决这个疯狂的问题吗?:(

谢谢。

php file phpstorm

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

标签 统计

php ×2

entity ×1

file ×1

forms ×1

performance ×1

phpstorm ×1

symfony ×1