Php Symfony慢速下载页面
我有一个项目 php:>=5.3.3, symfony/symfony:2.6.11, 当我打开页面时,在我的情境开发者中,我使用的是标准原则fincrionPhp Symfony慢速下载页面,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我有一个项目 php:>=5.3.3, symfony/symfony:2.6.11, 当我打开页面时,在我的情境开发者中,我使用的是标准原则fincrion $all_developer = $this->getDoctrine()->getRepository('ArtelProfileBundle:Developer')->findAll(); public function findAll() { return $this->findBy(arra
$all_developer = $this->getDoctrine()->getRepository('ArtelProfileBundle:Developer')->findAll();
public function findAll()
{
return $this->findBy(array(), array('id' => 'ASC'));
}
我等了4分钟打开页面,在调试面板中我看到下载103mb o_o这是近4000个实体
更新
我安装了DebeshaDoctrineProfileExtraBundle,我看到我的实体开发者在这个表中加载了TalentFiles表我有doc docx pdf文件当我找到所有开发者时如何禁用这个表
1 10.54 ms 1 SimpleObjectHydrator
r => Artel\ProfileBundle\Entity\Users
2 63.57 ms 100 ObjectHydrator
r => Artel\ProfileBundle\Entity\Developer
e0 => Artel\ProfileBundle\Entity\TalentFiles
我只看到有关系的字段,因为我想这可能是下载的问题,当我找到关系中的开发者原则和实体时。如果使用查询生成器,如何排除所有关系并查找没有此字段且具有关系的所有实体?如何排除???
这是我的实体:
public function getDevelopers()
{
$qb = $this->getEntityManager()->createQueryBuilder('d');
$qb
->select('d')
->from('ArtelProfileBundle:Developer', 'd')
//how to exclude???
->getQuery();
$query = $qb->getQuery();
$results = $query->getResult();
return $results;
}
实体开发者与关系
/**
* Developers
*
* @ORM\Table(name="developers")
* @ORM\Entity(repositoryClass="Artel\ProfileBundle\Entity\DeveloperRepository")
*/
class Developer extends CustomUser
{
///////////other field, I visible for you only field with relation ship
/**
* @ORM\OneToOne(targetEntity="TalentFiles", mappedBy="developer", cascade={"persist"})
*/
protected $talent_file;
/**
* @ORM\OneToMany(targetEntity="CodeUserReference", mappedBy="developer", cascade={"persist", "remove"})
*/
protected $reference_developer;
/**
* @ORM\OneToMany(targetEntity="CodeProjectNotificationLater", mappedBy="developer", cascade={"persist", "remove"})
*/
public $notification_later;
/**
* @ORM\ManyToOne(targetEntity="Teams", inversedBy="developers")
* @ORM\JoinColumn(name="team_id", nullable = true, referencedColumnName="id")
* */
protected $teams;
/**
* @ORM\OneToMany(targetEntity="CodeTalentsProjects", mappedBy="authorId", cascade={"persist"})
*/
protected $projects;
/**
* @ORM\OneToMany(targetEntity="Comments", mappedBy="talent", orphanRemoval=true)
*/
public $comment;
/**
* @ORM\ManyToOne(targetEntity="Artel\ProfileBundle\Entity\Users", inversedBy="add_developer")
*/
protected $added_by;
还有一些有趣的事情——当我打开首页时,这个页面在另一个动作中有路由,还有一些实体管理员的信息,仅此而已,没有任何实体,我等待15-40秒,下载15-28mb o_0
在前端,我使用metronic管理包,也许这些信息有帮助
我在调试面板中添加了一些屏幕,也许这有助于诊断问题
救命啊,也许有些人有这个问题 为什么要在一个页面中显示所有4k实体?我想显示一个实体getRepository'ArtelProfileBundle:Developer'->findAllI understund-我在JSF的表帮助中前面有分页首先,这不是下载,而是PHP内存使用情况,其次,如果将所有4k实体都放在html中,然后用js对其排序,别惊讶。使用pagerfanta、knp paginator或其他东西。如果你有600万个实体会发生什么?我知道这个捆绑包,但客户希望用js搜索,我需要优化选择,如何排除所有关系并找到没有此字段的所有实体,如果使用Query Builder如何排除???我更新我的问题