$array = $this->em->getRepository($entity)->filter($id);
With doctrine I am creating an array:
array:24 [▼ 0 => Members^ {#543 ▼ -id: 1 -username: "lio" -email: "info@somepage.com" -isActive: true -name: "Lio" -projects: PersistentCollection^ {#590 ▶} -pages: PersistentCollection^ {#615 ▶} } 1 => Members^ {#135029 ▶} 2 => Members^ {#125937 ▶} 3 => Members^ {#1807 ▶} 4 => Members^ {#135075 ▶} 5 => Members^ {#135086 ▶}
From this array I try to remove the object projects:
foreach ($array as $value) { dump($value->projects); }
I get the error message that the object is private.
I found this post, but there it is written, that I need to write a function inside the class.
Removing private properties of object
My question is, is it possible to remove it outside the class? Because when I remove it inside the class it is always removed and I want to remove it only in a specific case.
Advertisement
Answer
This is an array of Member
object. A private attribute of an object can only be access through its method. You need to find the file that declares the class Member
. Then add a public class method to do the unset. For example,
class Member { // ... public function unsetProjects() { unset($this->projects); } }
Then you should be able to do this:
foreach ($array as $value) { $value->unsetProjects(); }