Použití related v šabloně pro view

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tttpapi
Člen | 100
+
0
-

Ahoj,

mám view a chtěl, bych si pak v šabloně šáhnout pro další data pomocí related.

<?php
$this->database->table(self::NEW_TASKS_VIEW)->select('*');
?>
<?php
{$task->related('documents_comments')->count('*')}
?>

Vyhodí to chybu:
No reference found for $new_tasks->related(documents_comments)

Když použiji to samé, ale místo na view se dotazuji přímo na tabulku, tak to funguje.
Je nějaká možnost, jak to rozběhat i na view?

Díky moc.

Nette 2.1.2

EDITED:
Pokud si přidám ručně sloupec, na který se chci dotazovat
{$task->related(‚documents_comments‘, ‚document_id‘)->count(‚*‘)}
tak dostanu chybu, že pohled neobsahuje primary key:
Table „new_tasks“ does not have a primary key

Editoval tttpapi (23. 6. 2014 10:36)

Felix
Nette Core | 1270
+
0
-

U view mam pocit nefunguje related a ref. To by sis musel upravit Reflection.

tttpapi
Člen | 100
+
0
-

A pokud si ten dotaz napíšu ručně, tak jsem na fóru našel, že to taky nefunguje…

Pak už mi teda jen zbývá ten dotaz převést pomocí database, což se mi moc nepovedlo.

<?php
SELECT * FROM documents D
INNER JOIN document_check_users DCU
  ON DCU.document_id = D.id
WHERE D.date_valid > NOW()
  AND DCU.user_id = 1
  AND DCU.checked = 0
  AND D.id NOT IN (SELECT DCU2.document_id FROM document_check_users DCU2
	             WHERE DCU2.level < DCU.leveL
			AND (DCU2.checked = 0 OR DCU2.result = 0))
?>

Tak jestli by mi někdo mohl pomoci s tím, tak bych byl vděčný.

tttpapi
Člen | 100
+
0
-

Felix napsal(a):

U view mam pocit nefunguje related a ref. To by sis musel upravit Reflection.

Reflection jsem si upravil, ale pak mi přestalo fungovat zase propojení přes více tabulek, který používám odtud https://forum.nette.org/…vice-tabulek

Hlásí to: Cannot read an undeclared column „tags“

<?php
{foreach $directive->related('documents_tags', 'document_id') as $rel}
    <span class="document_tag">{$rel->tags->name}</span>
{/foreach}
?>

Editoval tttpapi (23. 6. 2014 11:28)

Felix
Nette Core | 1270
+
0
-

A jak presne jsi Reflection upravil? Pouzivas DiscoveredReflection nebo ConventionalReflection? Zkus jeste $rel->tag->name.

tttpapi
Člen | 100
+
0
-

Použil jsem tu conventional a akorát jsem si přepsal konstruktor, aby místo users_id to bralo user_id. Víc jsem tam neupravoval. Už jsem to ale začal řešit prostě celý přes PHP, jelikož mi tlačí čas…