我正在尝试解决如何处理返回的对象:
$data = $this->getDoctrine()->getRepository('MyBundle:EntityName')->findAll();
我知道我可以把它传递给Twig并以这种方式使用它,但是我需要在它上面做进一步的PHP代码。
我认为这是处理对象时的常见PHP问题。
使用序列化($ data)返回如此多的信息我不知道如何处理它。
我想我需要知道这样的事情:
//to get record 1 / field 1
$data[1]['field1']
......但当然这不起作用。
答案 0 :(得分:1)
我认为你不需要序列化它,我认为这会使它更难以使用。由于Doctrine知道您检索的实体的类型/类,它将它们作为实例返回,您可以正常地与它们进行交互。
基于您的问题的示例:
假设您想要记录1 - 字段1值,并且您搜索的此实体的结构类似于使字段1为id:
Class Person {
private $id;
private $someValue;
public function getId()
{
return $this->id;
}
public function setSomething($value)
{
$this->someValue = $value;
}
}
你可以像Kris所说的那样使用$ data [0] - > getId()
您可以访问任何有getter和setter的字段(或者是公开的)
如果你说你需要对这些检索到的对象进行一些修改,请记住$ data只是一个数组对象/实体。你可以这样做:
foreach($data as $object)
{
$object->setSomething($something);
}
我认为将它们用作对象肯定更好