NDB a update nad řádkem se složeným primárním klíčem
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- Richard Faila
- Člen | 40
Zdravím
Mám tabulku se složeným primárním klíčem
CREATE TABLE `akce_rating_member` (
`akce_id` smallint(5) unsigned NOT NULL,
`member_id` smallint(5) unsigned NOT NULL,
`rating` tinyint(3) unsigned NOT NULL,
`message` text collate utf8_czech_ci,
`anonymous` tinyint(1) unsigned NOT NULL default '0',
`date_add` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`akce_id`,`member_id`),
KEY `akce_id` (`akce_id`),
KEY `member_id` (`member_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
Pokud se pokusím o následující:
<?php
$row = $database->table('akce_rating_member')->get(24,10); //tohle funguje
$row->update($values); //tohle hodí chybu
?>
Dostanu Nette\InvalidStateException protože prý „Row does not contain primary id column data.“
Pokud si ale nechám $row vypsat, tak oba sloupce tvořící
klíč tam jsou.
Používám conventional reflection. Tuším, že chyba bude někde v tom
jak NDB tvoří primární klíče, ale nevím co s tím. Zatím to řeším
přes exec('UPDATE ...'), ale nepřijde mi to jako systémové
řešení problému.
Má někdo nápad, jak to opravit? Díky.
PHP 5.3 NetteFramework 2.0.10 5.3 Stable
Editoval Richard Faila (29. 5. 2013 17:12)