database explorer pro databázový pohled (VIEW)
- tprochazka
- Člen | 13
Je možné nějak použít database explorer s databázovým VIEW?
Padá to na tom, že potřebuje primární klíč. Je to opravdu nutné?
Ta metoda $this->getSignature()
má dokonce bool parameter,
který zabrání tomu, aby to padalo, ale v
ActiverRow.accessColumn()
se nepoužívá. Když to změním na
false, tak to normálně funguje.
- tprochazka
- Člen | 13
Prozatím jsem celé to VIEW přepsal do PHP, jen tedy nechápu proč pro table() nejde dát alias :-(
$table = UserFlatDao::TABLE_FLATS;
$flats = $this->database
->table($table)
->alias(":" . FlatUsageDao::TABLE_FLATS_USAGE, "u")
->select("$table.*, AVG(u.peoples) AS peoples_prev_year, AVG(u.dogs) AS dogs_prev_year, MAX(u.updated) AS updated_usage")
->joinWhere("u", "$table.id = u.flat AND u.year = YEAR(CURDATE()) - 1")
->group("$table.id");
Dost jsem se natrápil s chybějící „:“ před názvem joinované tabulky, ta chybová hláška je fakt nepochopitlná.
- Kamil Valenta
- Člen | 820
Problém je, že pohledy nepřenáší indexy, takže ani PK nelze ze
struktury získat.
Nedíval jsem se, zda se něco nezměnilo v nových verzích, ale
u 2.4 přesně kvůli tomuto přepisujeme getPrimary(), kde při detekci
pohledu voláme
$this->primary = 'id';
Je v tom kus konvence, šlo by to parametrizovat, ale za ty roky nemáme žádný pohled, který by měl PK jiný než id…