Witam.
Programując forum natrafiłem na problem. Otóż, gdy pobieram z bazy danych Temat, który jest w relacji OneToMany z tabelą Posty, nie wiem, jak wybrać pojedynczy post z tablicy, która zostaje przekazana, gdy wczytam powiązane z Tematem elementy .Mógłby mi ktoś doradzić w jaki sposób mam tą tablice rozbić na pojedyncze elementy? próbowałem implode() ale to nie tędy droga chyba.
kod w kontrolerze
$em = $this->getDoctrine()->getManager();
$temat = $em->getRepository('RonwellForumBundle:Temat')
->findSomething(1);
$posts = $temat->getPosts();
return new Response('Wczytano - '.$temat->getNick()." : ".$temat->getTemat().$posts->getTresc());
klasa Temat
class Temat
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $nick;
/**
* @ORM\Column(type="string", length=100)
*/
protected $temat;
/**
*
* @ORM\OneToMany(targetEntity="Post", mappedBy="temat")
*/
protected $posts;
/**
* Constructor
*/
public function __construct()
{
$this->posts = new \Doctrine\Common\Collections\ArrayCollection();
}
#... Gettery i settery pominięte
/**
* Get posts
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getPosts()
{
return $this->posts;
}
Klasa Post
class Post
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $nick;
/**
* @ORM\Column(type="text")
*/
protected $tresc;
/**
* @ORM\ManyToOne(targetEntity="Temat", inversedBy="Post")
* @ORM\JoinColumn(name="posts", referencedColumnName="id")
*/
protected $temat;
# Gettery i Settery pominięte
/**
* Set temat
*
* @param \Ronwell\ForumBundle\Entity\Temat $temat
* @return Post
*/
public function setTemat(\Ronwell\ForumBundle\Entity\Temat $temat = null)
{
$this->temat = $temat;
return $this;
}
/**
* Get temat
*
* @return \Ronwell\ForumBundle\Entity\Temat
*/
public function getTemat()
{
return $this->temat;
}
}
I klasa własna repozytorium
class TematRepository extends EntityRepository
{
public function findSomething($id)
{
$query = $this->getEntityManager()
->createQuery('
SELECT p FROM RonwellForumBundle:Temat p
WHERE p.id = :id'
)->setParameter('id', $id);
try {
return $query->getSingleResult();
} catch (\Doctrine\ORM\NoResultException $e) {
return null;
}
}
}