Php 当我提出任何要求时,Symfony 2电脑会发出隆隆声

Php 当我提出任何要求时,Symfony 2电脑会发出隆隆声,php,symfony,Php,Symfony,请原谅我的英语 我有三门课:用户、类别和服务 当我为服务对数据库进行简单查询时,例如findAll(),我的计算机会挂起。。。同时,对类别和用户的查询也很好 谢谢你的帮助 User.php namespace General\UserBundle\Entity; use Doctrine\ORM\Mapping as ORM; use FOS\UserBundle\Model\User as BaseUser; use Symfony\Component\Validator\Constrain

请原谅我的英语

我有三门课:用户类别服务

当我为服务对数据库进行简单查询时,例如findAll(),我的计算机会挂起。。。同时,对类别用户的查询也很好

谢谢你的帮助

User.php

namespace General\UserBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;


/**
 * @ORM\Column(type="string", length=255)
 *
 * @Assert\NotBlank(message="Please enter your type.", groups={"Registration", "Profile"})
 * @Assert\Length(
 *     min=3,
 *     max="255",
 *     minMessage="The type is too short.",
 *     maxMessage="The type is too long.",
 *     groups={"Registration", "Profile"}
 * )
 */
protected $type;

/**
 * Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}

/**
 * Set type
 *
 * @param string $type
 * @return User
 */
public function setType($type)
{
    $this->type = $type;

    return $this;
}

/**
 * Get type
 *
 * @return string 
 */
public function getType()
{
    return $this->type;
}
}
Category.php

namespace General\AnnuaireBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * Category
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="General\AnnuaireBundle\Entity\CategoryRepository")
 */
class Category
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=255)
 */
private $name;

/**
 * @var string
 *
 * @ORM\Column(name="description", type="text")
 */
private $description;

/**
 * @var boolean
 *
 * @ORM\Column(name="statut", type="boolean")
 */
private $statut;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="created_at", type="datetime")
 */
private $createdAt;

/**
 * @ORM\OneToMany(targetEntity="\General\AnnuaireBundle\Entity\Service", mappedBy="categories")
 */
private $services;


/**
 * Constructor
 */
public function __construct() {
   $this->createdAt = new \DateTime();
   $this->services = new ArrayCollection();
}


/**
 * Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}

/**
 * Set name
 *
 * @param string $name
 * @return Category
 */
public function setName($name)
{
    $this->name = $name;

    return $this;
}

/**
 * Get name
 *
 * @return string 
 */
public function getName()
{
    return $this->name;
}

/**
 * Set description
 *
 * @param string $description
 * @return Category
 */
public function setDescription($description)
{
    $this->description = $description;

    return $this;
}

/**
 * Get description
 *
 * @return string 
 */
public function getDescription()
{
    return $this->description;
}

/**
 * Set statut
 *
 * @param boolean $statut
 * @return Category
 */
public function setStatut($statut)
{
    $this->statut = $statut;

    return $this;
}

/**
 * Get statut
 *
 * @return boolean 
 */
public function getStatut()
{
    return $this->statut;
}

/**
* @ORM\PrePersist()
*/
public function setCreatedAt($createdAt = null) {
    $this->createdAt = null === $createdAt ? new \DateTime() : $createdAt;
    return $this;
}

/**
 * Get createdAt
 *
 * @return \DateTime 
 */
public function getCreatedAt()
{
    return $this->createdAt;
}

/**
 * Add services
 *
 * @param \General\AnnuaireBundle\Entity\Service $services
 * @return Category
 */
public function addService(\General\AnnuaireBundle\Entity\Service $services)
{
    $this->services[] = $services;

    return $this;
}

/**
 * Remove services
 *
 * @param \General\AnnuaireBundle\Entity\Service $services
 */
public function removeService(\General\AnnuaireBundle\Entity\Service $services)
{
    $this->services->removeElement($services);
}

/**
 * Get services
 *
 * @return \Doctrine\Common\Collections\Collection 
 */
public function getServices()
{
    return $this->services;
}
}
Service.php

namespace General\AnnuaireBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Service
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="General\AnnuaireBundle\Entity\ServiceRepository")
 */
class Service
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=255)
 */
private $name;

/**
 * @var string
 *
 * @ORM\Column(name="description", type="text")
 */
private $description;

/**
 * @var boolean
 *
 * @ORM\Column(name="statut", type="boolean")
 */
private $statut;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="created_at", type="datetime")
 */
private $createdAt;

/**
 * @ORM\ManyToOne(targetEntity="\General\AnnuaireBundle\Entity\Category", inversedBy="services")
 * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
 */
private $categories;

/**
 * @ORM\ManyToOne(targetEntity="\General\UserBundle\Entity\User")
 */
private $users;

/**
 * Constructor
 */
public function __construct() {
   $this->createdAt = new \DateTime();
}

/**
 * Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}

/**
 * Set name
 *
 * @param string $name
 * @return Service
 */
public function setName($name)
{
    $this->name = $name;

    return $this;
}

/**
 * Get name
 *
 * @return string 
 */
public function getName()
{
    return $this->name;
}

/**
 * Set description
 *
 * @param string $description
 * @return Service
 */
public function setDescription($description)
{
    $this->description = $description;

    return $this;
}

/**
 * Get description
 *
 * @return string 
 */
public function getDescription()
{
    return $this->description;
}

/**
 * Set statut
 *
 * @param boolean $statut
 * @return Service
 */
public function setStatut($statut)
{
    $this->statut = $statut;

    return $this;
}

/**
 * Get statut
 *
 * @return boolean 
 */
public function getStatut()
{
    return $this->statut;
}

/**
 * Set createdAt
 *
 * @param \DateTime $createdAt
 * @return Service
 */
public function setCreatedAt($createdAt)
{
    $this->createdAt = $createdAt;

    return $this;
}

/**
 * Get createdAt
 *
 * @return \DateTime 
 */
public function getCreatedAt()
{
    return $this->createdAt;
}

/**
 * Set categories
 *
 * @param \General\AnnuaireBundle\Entity\Category $categories
 * @return Service
 */
public function setCategories(\General\AnnuaireBundle\Entity\Category $categories = null)
{
    $this->categories = $categories;

    return $this;
}

/**
 * Get categories
 *
 * @return \General\AnnuaireBundle\Entity\Category 
 */
public function getCategories()
{
    return $this->categories;
}

/**
 * Set users
 *
 * @param \General\UserBundle\Entity\User $users
 * @return Service
 */
public function setUsers(\General\UserBundle\Entity\User $users = null)
{
    $this->users = $users;

    return $this;
}

/**
 * Get users
 *
 * @return \General\UserBundle\Entity\User 
 */
public function getUsers()
{
    return $this->users;
}
}
Controller.php

public function showServicesAction() 
{        
$em = $this->getDoctrine()->getManager(); 
$services = $em->getRepository('GeneralAnnuaireBundle:Service')->findAll();

return $this->render('GeneralAnnuaireBundle:General:list_services.html.twig',
                     array('services'=>$services,
                         )
);
}
如果我将我的函数修改为:

$user = $this->container->get('security.context')->getToken()->getUser();
$user_id = $user->getId();
// var_dump($user_id);       ALL IS RIGHT

$em = $this->getDoctrine()->getManager(); 

$services = $em->getRepository('GeneralAnnuaireBundle:Service')->findAll();

// var_dump($user_id);     ALL IS RIGHT

// IF:  var_dump($services[0]);      COMPUTER HUNGS 

// IF:  echo count($services);        RESPONSE RIGHT

// IF:  
return $this->render('GeneralAnnuaireBundle:General:list_services.html.twig',
                         array('services'=>$services, ));
                               // SCREEN WHITE

若在浏览器中打印对象,它将被挂起,因为symphony对象包含大量信息。假设您与其他表有关系,那么它将具有当前表信息以及其他相关表信息(架构、数据、关系等),因此可能99%的几率挂起浏览器。最好打印“echo count($services)”以检查对象是否存在

尝试Debug::dump($service)或任何变量-您将能够看到对象(没有代理)

计算机挂起的原因可能有上千种。所以问题是:它与什么有关?特定进程的CPU启动?如果是,那是哪一个?听起来像是一个无休止的循环,或者是实体管理器中的资源问题。挂起时CPU是否正在运行?并且做
var_dump($services)仍在工作?谢谢你的提示)对不起,我的英语是零。一切都很好,我们一步一步走。我关闭这个帖子。实际上,当我在*.twig{%forservices%}中循环项目时,一切都正常。但是PHP中的dump()和HTML中的{{dump()}仍然存在问题。谢谢大家,你说得对。我照你说的做了,浏览器给我看了答案。没错。但是如果数据很庞大,我怎么能得到数据呢?即使我不打印对象并渲染*。细枝它也会变粗。。。我能做些什么来解决这个问题?谢谢你。艾琳,我看到你又在树枝档案里做同样的事情了。如果您想将数据列在twig中,只需执行以下操作{%for services%}{{{service.name}}
{{{service.description}}
{{service.statut}{%end foreach%}