我有一个名为Elements的PHP模型类,它有一个多对多的自引用。我已经创建了一个ManyToMany关系:
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Elements
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Evalfor\GescompevalBundle\Entity\ElementsRepository")
*/
class Elements
{
// Constants
const COMPETENCE = "competence";
const RESULT = "result";
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
// ... More attributes ...
/**
* @ORM\ManyToMany(targetEntity="Elements", mappedBy="myElements")
**/
private $elementsWithMe;
/**
* @ORM\ManyToMany(targetEntity="Elements", inversedBy="elementsWithMe")
* @ORM\JoinTable(name="connected_elements"),
* joinColumns={@ORM\JoinColumn(name="element_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="connected_element_id", referencedColumnName="id")}
* )
**/
private $myElements;
/**
* Construct
*
*/
public function __construct() {
$this->elementsWithMe = new \Doctrine\Common\Collections\ArrayCollection();
$this->myElements = new \Doctrine\Common\Collections\ArrayCollection();
}
public function addElement(Elements $element)
{
$element->addElement($this);
$this->myElements[] = $element;
return $this;
}
public function getElements(){
return $this->myElements;
}
// ... More methods ...
}
此外,我有一个空的Elements资料库:
use Doctrine\ORM\EntityRepository;
class ElementsRepository extends EntityRepository
{
}
最后,我有一个元素控制器:
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Evalfor\GescompevalBundle\Entity\Elements;
use Evalfor\GescompevalBundle\Form\ElementsType;
use Symfony\Component\HttpFoundation\Request;
class ElementsController extends Controller
{
// ... Some methods ...
public function updateAction($type)
{
$em = $this->getDoctrine()->getManager();
$elements_all = $this->getDoctrine()->getRepository('EvalforGescompevalBundle:Elements')->findAll();
print_r($elements_all); exit;
// ...
}
}
问题在于,当我调用findAll()方法时,浏览器会冻结(对于其他类似的方法也是如此),但是如果我删除了Elements类中的所有ManyToMany引用,它就能完美运行。
任何人都可以帮我这个吗?提前谢谢。
答案 0 :(得分:0)
好的,我解决了这个更新控制器的动作。我几天前改变了模型,所以我想一些旧的方法或对象仍然存在。如果有人遇到同样的问题,我建议检查整个控制器,而不仅仅是导致错误的代码行。