database explorer pro databázový pohled (VIEW)

tprochazka
Člen | 13
+
0
-

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é?

https://ibb.co/SmJYP2F

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
+
+1
-

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 | 815
+
0
-

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…