spojení dvou a více tabulek notORM
- spiider
- Člen | 162
Ahoj, mám stále problém se spojením např. dvou tabulek. Něco jsem tu na fóru našel ale nic mi nepomohlo a určitě to pro vás bude maličkost :)
Mám dvě tabulky users(id,name,login,role_id) a role(role_id,role)
a chci udělat jednoduchý výpis uživatelů: Jan Novák Admin, Michal Černý
Uživatel atd.
V modelu mám:
$this->db->users();
Poradíte pls? Díky
- Melmen
- Člen | 132
Koukal jsi sem? Je to
totiž první example použití.
Takže něco ve smyslu
foreach($this->db->users() as $user)
{
echo $user['name']; // uživatelské jméno
echo $user->role['role']; // role uživatele
}
- Melmen
- Člen | 132
Grid nepoužívám, s tím ti neporadím.
Pro výpisy tabulek používám DataTables
Je to jednoduchý, založený na jQuery (myslím :D ) Nadefinuju si tabulku do
který pošlu data a DataTables se mi postará o všechno ostatní,
i o stránkovač.
- Melmen
- Člen | 132
Nejsem si teďka jistý, ale mrkni (opět) sem na část
„Row“.
V posledním řádku se píše: `(string) $row = Get primary key value `
Takže něco na způsob
$primary = (string) $row;
echo $primary;
Ale nezkoušel jsem, jen hádám :)
//EDIT
Teď jsem si všiml, že by to mělo být getPrimary($row);
Editoval Melmen (6. 1. 2012 14:10)
- petr.pavel
- Člen | 535
Hodnotu nově vzniklého záznamu najdeš v $row['id']
hned po
insertu. Volat nic nemusíš, protože insert() ti ji tam vloží
sám.
- petr.pavel
- Člen | 535
Tak to je podstatný detail :-)
Budeš si muset definovat vlastní NotORM_Structure. Stačí podědit NotORM_Structure_Convention nebo NotORM_Structure_Discovery, ale hlavně budeš muset definovat vlastní metodu getSequence(), která ti pro zadaný název tabulky vrátí name of a sequence object.
- spiider
- Člen | 162
Uz mi to jede diky moc, ještě bych se chtěl zeptat.....používám grid do kterého z modelu pošlu údaje které grid vykreslí. Problém teď mám s tím když chci spojit více tabulek. Když to udělám podle návodu a použiju jak mi psal Melmen
foreach($this->db->users() as $user)
{
echo $user['name']; // uživatelské jméno
echo $user->role['role']; // role uživatele
}
Tak já bych potřeboval vrátit z funkce kompletní result ve formátu který vrací např. jednoduchý
return $this->db->users();
Grid vypadá zkráceně takto:
$grid = new \Gridito\Grid($this, $name);
$grid->setModel(new \Gridito\NotORMGriditoModel(
$this->model->getUsers()));
$grid->addColumn('fname', _('First name'))->setSortable(true);
Díky za rady