I want to get 1 element out an ArrayCollection. I'm using Symfony 2.7.
For example i have an collection of the entity Activity:
$activities = $em->getRepository('AppBundle:Activity')->findAll();
Next i want to get 1 activity out of this ArrayCollection, based on a many-to-one relation.
The entity 'Activity':
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\ActivityRepository")
* @ORM\Table(name="activity")
*/
class Activity {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="ObjectElementTask", inversedBy="activities", cascade={"persist"})
* @ORM\JoinColumn(name="objectelementtask_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $objectelementtask;
What did i try:
$objectElementTask = $em->getRepository('AppBundle:ObjectElementTask')->findOneBy(["active" => 1, "object" => (int)$objectId]);
$activity = $activities->findBy(['objectelementtask' => $objectElementTask]);
I get the following exception: "Call to a member function findBy() on array"
I want to prevent querying the database foreach.
I also tried:
$activity = array_search($objectElementTask, array_column($activities, 'objectelementtask'));
But this has no result...
Thanks in advance!