Použití ActiveRow::related na vlastní instanci
- bortomar
- Člen | 7
Zdravím, zkoušel jsem následující a rád bych se zeptal, je-li nějak možné instacovat ActiveRow tak, aby správně fungovaly metody related a ref? Nebo takového výsledku dosáhnout nelze, případně proč?
<?php
//\Nette\Database\Context $context
$table = $context->table('foo');
$fooRow = $table->get(1);
$sameFooRow = new ActiveRow(['id' => 1], $table);
$fooRelated = $fooRow->related('bar_to_foo', 'foo_id');
$sameFooRelated = $sameFooRow->related('bar_to_foo', 'foo_id');
$fooRelated->count(); // OK - počet záznamů z 'bar_to_foo'
$sameFooRelated->count(); // PHP Warning: count(): Parameter must be an array or an object that implements Countable in ...\database\src\Database\Table\GroupedSelection.php:148
?>
Snažil jsem se debugovat, ale skončil jsem u toho, že v metodě Nette\Database\Table\Selection::getReferencingTable, kterou volá právě Nette\Database\Table\ActiveRow::related, je property $this->rows v prvním případě správně inicializována, kdežto v tom druhém je null.
- Ondřej Kubíček
- Člen | 494
ActiveRow
by sis nikdy neměl sám instancovat. Proč to
potřebuješ? Čeho chceš dosáhnout?