Nextras ORM relation table
- sucho
- Člen | 57
Zdravím @hrach @JanTvrdík
Snažím sa prepojiť Entity s relačnou tabuľkou
ale všetky videá a príklady sú zastaralé s inými zápismi
a v dokumentácii taktiež sú len príklady medzi dvoma tabuľkami
/**
* @property int $id {primary}
* @property string $email
* @property string|null $password
* ...
* @property OneHasMany|UserRole[] $roles {1:m UserRole::$role}
*/
class User extends BaseEntity
{
}
/**
* @property int $id {primary}
* @property string $name
* @property ManyHasOne|User[] $users {m:1 UserRole::$user}
*/
class Role extends BaseEntity
{
}
/**
* @property int $id {primary-proxy}
* @property OneHasMany|User $user {1:m User::$roles} {primary}
* @property OneHasMany|Role $role {1:m Role::$users} {primary}
*/
class UserRole extends BaseEntity
{
}
- MajklNajt
- Člen | 498
podľa mňa úplne nepochopené fungovanie relácií… buď si sprav M:N reláciu iba medzi dvoma entitami:
/**
* @property ManyHasMany|Role[] $roles {m:m Role::$users, isMain=true}
*/
class User
{
}
/**
* @property ManyHasMany|User[] $users {m:m User::$roles}
*/
class Role
{
}
alebo ak potrebuješ na tej spojovacej entite definovať ďalšie vlastnosti, tak potom správne zadefinuj relácie spojovacej entity:
/**
* @property OneHasMany|UserRole[] $userRoles {1:m UserRole::$user}
*/
class User
{
}
/**
* @property OneHasMany|UserRole[] $userRoles {1:m UserRole::$role}
*/
class Role
{
}
/**
* @property ManyHasOne|User $user {m:1 User::$userRoles} {primary}
* @property ManyHasOne|Role $role {m:1 Role::$userRoles} {primary}
*/
class UserRole
{
}
btw. v dokumentácií sú príklady aj na ManyHasMany https://nextras.org/…elationships#… aj OneHasMany/ManyHasOne https://nextras.org/…elationships#…, takže nabudúce pred kritizovaním dokumentácie by bolo fajn si to správne naskladať :)
- hrach
- Člen | 1838
Ahoj, bohuzel moc nerozumim.
Snažím sa prepojiť Entity s relačnou tabuľkou
Entity propojujes s entitami, ne s tabulkami. Tabulky propojujes v sql s tabulkami. Ve tve vete michas terminy ze dvou vrstve.
ale všetky videá a príklady sú zastaralé s inými zápismi
To je mozne, prosim uved prikady a idealne v to, v cem je to zastarale a
kde. Pokud na foru, bohuzel to cizi prispvky nemuzu editovat. Sve pokusim
upravit.
Edit: ano, to video je pravda urcite zastarale :(
a v dokumentácii taktiež sú len príklady medzi dvoma tabuľkami
Tezko delat relaci mezi vice tabulkami/entitami.
MajkNajt ti snad vec ozrejmil vice, pokud ne, prosim napis presne jakou chybu
ti to pise.
Taky prosim, idealne issue zaloz na GitHubu –
tam te sablona taky navede, ktere informace potrebujeme, abychom ti mohli pomoc
;) Diky.
Editoval hrach (5. 12. 2018 12:34)