tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Read-only property v nepřipojené entitě a testování

před 5 lety

Petr Hudík
Člen | 50

Ahoj,

snažím se o testování Nette presenteru bez připojení k databázi. Mám přibližně následující entitu:

/**
 * @property-read int $id
 * @property string|NULL $name
 */
class Article extends Entity
{}

Při testování si vytvořím instanci:

$article = new Article([
    'name' = 'Můj nový článek',
]);

A tuto entitu dostanu do presenteru, který ji předá do šablony. Ale v šabloně se ptám na $id ($article->id), které neexistuje, proto mi to vrátí chybu viz víž. Koukal jsem na tento test, ale v něm není property read only. Je možné nějak nastavit property, která je read-only? Nebo je řešením smířit se s tím, že $id nebude read-only?

Cannot get value of property 'id' in entity Model\Entity\PickedWord due to low-level failure: Missing 'id' column in row with id -1.

před 5 lety

Tharos
Člen | 1042

Ahoj,

lze to řešit například takhle:

$data = [
    [
        'id' => 1,
        'name' => 'Můj nový článek',
    ],
];

$fakeConnection = new Connection([
    'lazy' => true,
]);

$author = new Author(
    Result::createInstance($data, 'author', $fakeConnection, $mapper)->getRow(1)
);

echo $author->id;

Editoval Tharos (21. 8. 2014 22:20)