Zobrazenie many to many v datagrid
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- bajtak
 - Člen | 4
 
Ahojte,
mám tabuľku student ktorá má many to many relationship
s tabuľkou group.
Mojím cieľom je zobraziť datagrid všetkých študentov a ku každému
študentovi, do jedného stĺpca napísať všetky kategórie do ktorých
patrí.
Mám vytvorenú StudentRepository, v ktorej volám findAll. Viem, že
existuje metóda related() ale neviem ako ju správne použiť keďže volám
fetchAll.
class StudentRepository
{
...
public function findAll() : ?array
{
	return $this->database->table('student')->fetchAll() ?: NULL;
}
...
}
Používam datagrid Ublaboo.
Vopred ďakujem ;)

- Mortisson
 - Člen | 21
 
Musíš si ty studenty, kteří ti přišli v tom fetchAll() projet foreachem a na každém z nich zavolat tu metodu related.
Mělo by to vypadat nějak takhle, což je ale přímo z dokumentace, takže najít odpověď nebylo zas tak těžké.
<?php
	$books = $context->table('book');
	foreach ($books as $book) {
    	echo 'title:      ' . $book->title;
    	echo 'written by: ' . $book->author->name; // $book->author je řádek z tabulky 'author'
    	echo 'tags: ';
    	foreach ($book->related('book_tag') as $bookTag) {
        	echo $bookTag->tag->name . ', '; // $bookTag->tag je řádek z tabulky 'tag'
    	}
	}
?>