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)