我有一个包含一些经典字段的表单,以及一个用户实体的下拉列表(使用 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) 我对 PhpStorm 有一个非常疯狂的问题,我不知道如何解决。
我有一个名为“myclass.php”的空 php 文件,它似乎无法被 PhpStorm 识别,因为图标是“?”。
当我尝试用 PhpStorm 打开这个文件时,鼠标开始闪烁,我的 IDE 冻结,直到我重新启动它......但是,我可以从任何其他 IDE(如记事本)打开该文件。此外,我是唯一遇到此问题的人,因为我的其他团队工作人员可以使用他们的 PhpStorm IDE 打开该文件。
但是,当我将文件重命名为“myclass2.php”时,图标会像我的其他 php 文件一样发生变化,并且我可以打开它。
正是在文件名为“myclass.php”时触发了问题。
我试过 :
有人知道如何解决这个疯狂的问题吗?:(
谢谢。