Chyby po přepnutí z Kdyby/Doctrine na Nettrine/ORM

pavelinnuendo
Člen | 33
+
0
-

Ahoj,

nenašel jsem žádný návod, který by přechod na Nettrine/ORM popisoval. Při instalaci a konfiguraci jsem vycházel z https://github.com/…ine-skeleton.

Základ funguje, ale nedokáži vyřešit následující chyby. Napadá vás, kde by mohl být zakopený pes?

Error
xdebug_message:
'
Error: Class 'Nettrine\Proxy\__CG__\App\Model\Entities\User' not found in /var/www/html/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProx … ex.php:10'
message: 'Class 'Nettrine\Proxy\__CG__\App\Model\Entities\User' not found'
string: ''
code: 0
file: '/var/www/html/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php'
line: 100
trace: array
previous: null

Call stack:
.../orm/lib/Doctrine/ORM/UnitOfWork.php:2816   Doctrine\Common\Proxy\AbstractProxyFactory->getProxy ()
.../Hydration/SimpleObjectHydrator.php:155   Doctrine\ORM\UnitOfWork->createEntity ()
.../Hydration/SimpleObjectHydrator.php:70   Doctrine\ORM\Internal\Hydration\SimpleObjectHydrator->hydrateRowData ()
.../Internal/Hydration/AbstractHydrator.php:202   Doctrine\ORM\Internal\Hydration\SimpleObjectHydrator->hydrateAllData ()
.../Entity/BasicEntityPersister.php:901   Doctrine\ORM\Internal\Hydration\AbstractHydrtor->hydrateAll ()
.../lib/Doctrine/ORM/EntityRepository.php:201   Doctrine\ORM\Persisters\Entity\BasicEntityPersister->loadAll ()
.../prosun/app/model/facades/DocsFacade.php:57   Doctrine\ORM\EntityRepository->findBy ()
.../presenters/DocumentPresenter.php:51   App\Model\Facades\DocsFacade->getAllByType ()
inner-code App\AdminModule\Presenters\DocumentPresenter->actionDocs ()
.../src/Application/UI/Component.php:102   ReflectionMethod->invokeArgs ()
.../src/Application/UI/Presenter.php:213   Nette\Application\UI\Component->tryCall ()
.../src/Application/Application.php:160   Nette\Application\UI\Presenter->run ()
.../src/Application/Application.php:89   Nette\Application\Application->processRequest ()
/home/x/web/project/www/index.php:10   Nette\Application\Application->run ()

A tato spojená s Ublaboo/Datagrid:

Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException
xdebug_message:
'
Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException: Can't get a way to read the property "id" in class "App\Model\Entities\Task". in  … ex.php:10'
message: 'Can't get a way to read the property "id" in class "App\Model\Entities\Task".'
string: ''
code: 0
file: '/var/www/html/vendor/symfony/property-access/PropertyAccessor.php'
line: 459
trace: array
previous: null

Call stack
.../property-access/PropertyAccessor.php:115   Symfony\Component\PropertyAccess\PropertyAccessor->readProperty ()
.../vendor/ublaboo/datagrid/src/Row.php:265   Symfony\Component\PropertyAccess\PropertyAccessor->getValue ()
.../vendor/ublaboo/datagrid/src/Row.php:112   Ublaboo\DataGrid\Row->getDoctrineEntityProperty ()
.../vendor/ublaboo/datagrid/src/Row.php:55   Ublaboo\DataGrid\Row->getValue ()
.../vendor/ublaboo/datagrid/src/DataGrid.php:538   Ublaboo\DataGrid\Row->__construct ()
/home/costra/web/prosun/temp/cache/latte/templates-Task-grid.latte--805f237724.php:41   Ublaboo\DataGrid\DataGrid->render ()
.../latte/src/Latte/Runtime/Template.php:294   Template805f237724->blockContent ()
.../latte/src/Latte/Runtime/Template.php:349   Latte\Runtime\Template->Latte\Runtime\{closure} ()
.../latte/src/Latte/Runtime/Template.php:297   Latte\Runtime\Template->filter ()

/home/x/web/project/temp/cache/latte/AdminModule-templates-@layout.latte--b11ac28a04.php:198   Latte\Runtime\Template->renderBlock ()
.../latte/src/Latte/Runtime/Template.php:205   Templateb11ac28a04->main ()
.../latte/src/Latte/Runtime/Template.php:186   Latte\Runtime\Template->render ()
.../vendor/latte/latte/src/Latte/Engine.php:95   Latte\Runtime\Template->render ()
.../Bridges/ApplicationLatte/Template.php:46   Latte\Engine->render ()
.../Application/Responses/TextResponse.php:50   Nette\Bridges\ApplicationLatte\Template->render ()
.../src/Application/Application.php:168   Nette\Application\Responses\TextResponse->send ()
.../src/Application/Application.php:89   Nette\Application\Application->processRequest ()
/home/x/web/project/www/index.php:10   Nette\Application\Application->run ()
Renyl
Člen | 6
+
+1
-

Ahoj, Pavle,

měl jsem stejný problém při přechodu z Kdyby s těmi proxy třídami a pomohlo mi smazat obsah adresáře temp/proxies/, kde byly původně generované proxy třídy z Kdyby.

Hope this helps :)

pavelinnuendo
Člen | 33
+
+1
-

Renyl napsal(a):

Ahoj, Pavle,

měl jsem stejný problém při přechodu z Kdyby s těmi proxy třídami a pomohlo mi smazat obsah adresáře temp/proxies/, kde byly původně generované proxy třídy z Kdyby.

Hope this helps :)

Díky!!! Taková blbost! :) Tím je vyřešen ta první chyba.

Teď ještě co s tím Ublaboo/Datagridem…

Editoval pavelinnuendo (27. 1. 2021 16:24)

Renyl
Člen | 6
+
0
-

střílím od boku, ale máš v třídě App\Model\Entities\Task use Id; ?

jako např. tady

use Nettrine\ORM\Entity\Attributes\Id;

/**
 * @ORM\Entity
 */
class Category
{

    use Id;

}
Gappa
Nette Blogger | 198
+
+2
-

pavelinnuendo napsal(a):
Teď ještě co s tím Ublaboo/Datagridem…

Datagrid používá PropertyAccess a ten hledá v objektu getter, pak hasser/isser a až nakonec jde po public property (možná jsem něco přeskočil).

Pokud jsi v Kdyby/Doctrine používal protected properties a pak tu get/set magii (je tam i samostatná traita), tak ta tady není, tak pro ten PropertyAccessor je ta entita „nedobytná“.

Pro ID pomůže ta zmiňovaná traita z Nettrine, pro ostatní properties té entity ale už budou potřeba metody (nebo je udělat public, ale to raději ne).

Snad jsem situaci odhadl správně :)

Editoval Gappa (27. 1. 2021 20:08)

Renyl
Člen | 6
+
+1
-

Nakonec jsem to teď také řešil a pomohlo mi k ID přistupovat přes getId().