ORM práce s entitou a vytvoření tabulky

Albenis
Člen | 11
+
0
-

Ahoj,

snažím se rozchodit ORM ( Nettrine ) na Nette 3.0.

Mám založenou Entitu User v App\Model\Database\User.php

V configu je jako

orm.annotation:
paths:
- App\Model\Database\User

Jak vytvořím table v databázi pomocí té entity ?

  • nedá se nějak docílit toho, aby se mi Entity mapovali sami ? a nemusel jsem každou registrovat do configu ?

Díky moc :)

Mysteria
Člen | 797
+
0
-
  1. Nainstaluješ si Symfony Console a ORM Bridge: https://github.com/…cs/README.md#…
  2. Zkus tam dát místo konkrétní entity jenom App\Model\Database
Albenis
Člen | 11
+
+1
-

Takhle vypadá můj common.neon ( v php tagu je to pro čitelnost )

<?php
extensions:
	console: Contributte\Console\DI\ConsoleExtension(%consoleMode%)

	dbal: Nettrine\DBAL\DI\DbalExtension
	dbal.console: Nettrine\DBAL\DI\DbalConsoleExtension

	orm: Nettrine\ORM\DI\OrmExtension
	orm.console: Nettrine\ORM\DI\OrmConsoleExtension
	orm.annotation: Nettrine\ORM\DI\OrmAnnotationsExtension

services:
	- App\Console\CreateUserCommand

	router: App\Router\RouterFactory::createRouter

console:
	name: CRM | Znamý web
	version: '1.0'
	catchExceptions: true
	autoExit: false
	lazy: true
	url: https://www.znamyweb.cz

orm.annotation:
	excludePaths: []
	ignore: []
	defaultCache: filesystem
	paths:
		- App\Model\Entity
?>

A takhle vypadá má Entita, která se nachází v app/Model/Entity/User.php

<?php

namespace App\Model\Entity;

use Doctrine\ORM\Mapping as ORM;
use Nettrine\ORM\Entity\Attributes\Id;


/**
 * Class User
 * @package App\Model\Entity
 * @ORM\Entity
 */
class User
{
	use Id;
}
?>
Albenis
Člen | 11
+
0
-

Napíšu-li bin/console orm:info

output: File mapping drivers must have a valid directory path, however the given path [App\Model\Entity\] seems to be incorrect!

jiri.pudil
Nette Blogger | 1028
+
0
-

To je myslím docela srozumitelná chybová hláška :) V orm.annotation.paths nemá být PHP namespace, nýbrž cesta ke složce, ve které se nacházejí entity. Takže třeba %appDir%

Albenis
Člen | 11
+
0
-

Tak v tom případě je dokumentace napsána docela podivně..

https://github.com/…cs/README.md#…

<?php
orm.annotations:
    paths:
        - App/Model/Database/Entity
?>
MajklNajt
Člen | 471
+
+1
-

@Albenis sleduj lomky…

Albenis
Člen | 11
+
0
-

@MajklNajt
? co tím myslíš ?

Zkusil jsem:

App\Model\Entity
App/Model/Entity

App\Model\Entity\User
App/Model/Entity/User

Albenis
Člen | 11
+
0
-

UPDATE

Fungovalo mi to za použití:

%appDir%/Model/Entity