NextrasORM – po označení property jako primary nefungují relationships

- Vastlik
 - Člen | 58
 
Ahoj,
po té co jsem označil klíč jako primary v entitě, funkce níže nic
nedumpne
		$user = $this->orm->users->getByUserId(1);
		foreach($user->vouchers as $voucher)
		{
			dump($voucher->id);
		}
V DB mám sloupec v jednotlivých tabulkách mám názvy user_id,
voucher_id, voucher_type_id jako primární klíče,
pokud se jmenovaly „id“, tak vše fungovalo v pořádku. Přikládám
entity a SQL které se vykoná.
SELECT vouchers.* FROM `vouchers` AS `vouchers` WHERE vouchers.user IN (NULL)
<?php
namespace Vouchers;
use Nette\Utils\DateTime;
use Nextras\Orm\Entity\Entity;
use Nextras\Orm\Relationships\OneHasMany;
/**
 * User
 *
 * @property int $userId {primary}
 * @property string $email
 * @property string $password
 * @property string $name
 * @property string $surename
 * @property string $paypal
 * @property DateTime $createdAt {default now}
 * @property DateTime $lastLogin
 * @property OneHasMany|Voucher[] $vouchers {1:m Voucher}
 */
class User extends Entity
{
}
<?php
namespace Vouchers;
use Nextras\Orm\Entity\Entity;
use Nextras\Orm\Relationships\ManyHasMany;
/**
 * Voucher
 *
 * @property int $voucherId {primary}
 * @property int $value
 * @property User $user {m:1 User}
 * @property VoucherType $voucherType {m:1 VoucherType}
 */
class Voucher extends Entity
{
}
<?php
namespace Vouchers;
use Nette\Utils\DateTime;
use Nextras\Orm\Collection\ICollection;
use Nextras\Orm\Entity\Entity;
use Nextras\Orm\Relationships\ManyHasMany;
use Nextras\Orm\Relationships\OneHasMany;
/**
 * Post
 *
 * @property int $voucherTypeId {primary}
 * @property int $maxValue
 * @property int $charCode
 * @property string $image
 * @property OneHasMany|Voucher[] $vouchers {1:m Voucher}
 */
class VoucherType extends Entity
{
}
					Editoval Vastlik (3. 12. 2015 20:17)

- hrach
 - Člen | 1844
 
Obecne: Prosim, neotevirejte nová Nextras ORM temata na foru, bud prispivejte do aktualního vlakna, nebo se ptejte na GitHubu. Diky
Jakou pouzivas verzi?
- v 1.1 nejde mit entitu s jednim sloupcem primarnim klicem, ktery se jmenuje jinak nez id. Jedine, ze by si nededil od Nextras\Orm\Entity, ale od AbstractEntity. Ale i tak si nejsem jisty, ze by to mohlo vzdy fungovat dobre.
 - v 2.0 lze nasledovne:
 
/**
 * @property int $id {primary-proxy}
 * @property int $userId {primary}
 */
				
- Vastlik
 - Člen | 58
 
Čau, díky za odpověď. Nextras mám na „dev-master“, entity jsem přepsal na
* @property int $id {primary-proxy}
* @property int $userId {primary}
....
Ale ORM, se pokouší hledat dle id, ne userId. Viz. chybová hláška.
Unknown column 'users.id' in 'where clause'
SELECT `users`.* FROM `users` AS `users` WHERE `users`.`id` = 3 LIMIT 1
					Editoval Vastlik (4. 12. 2015 18:40)

- Vastlik
 - Člen | 58
 
@hrach ahoj, bohužel funguje jen na půl. Ze strany kniha->autor
funguje v pohodě, ale procházení foreachem všech knih od autorů tzn.
autor->knihy nefunguje. U many2many jsem nezkoušel. Nefunguje znamená, že
to vratí null zda-li má autor nějaké knihy.
Díky!
edit: nebo je třeba přidat i tohle?
https://github.com/…rsMapper.php
Editoval Vastlik (20. 12. 2015 12:36)