cakephp saveAll fără cheie primară?

Okei, deci cum să-i spun tortului că nu există nici o cheie primară ID atunci când salvezi?

associates:
- id (primary key)
- name

associate_tests
- associate_id
- name

model Associate
hasmany AssociateTest

model Assciate_test
belongTo Associate

Cake spit out an error when saveAll;
SQL Error: 1054: Unknown column 'AssociateTest.id' in 'field list'

Deci, cum să-i spuneți tortului că ID-ul nu există? și în acest tabel nu există niciun identificator unic.

Mulțumesc pentru sugestii, sunt blocat pe asta.

-Tom

EDIT; Expunere de motive Mă uit la o astfel de configurație:

  • Dacă este un exemplu de salvare; 1 ecran, cu 5 opțiuni. screen_id = 1 + screenOption = 1 -5

Acum, dacă editez ecranul și îl salvez din nou. Ecranul id = 1, screenOption = 6-10

Dacă creez 1000 de ecrane și am 5 opțiuni pe fiecare ecran. De fiecare dată când salvez sau editez un ecran, la toate opțiunile i se va atribui un ID nou. Acest lucru este bacause de jQuery add/remove opțiuni în vedere, și am șterge toate opțiunile înainte de a le salva în controler din cauza asta. EG: Opțiunile vor primi ID-uri noi la fiecare salvare (rezultând în wiiiide id primary_keys, care nu vor fi folosite niciodată pentru nimic).

Deoarece ID-ul nu va fi folosit niciodată, nu am nevoie de el. Aveți vreo altă sugestie cu privire la o modalitate mai bună de a crea tabelul meu associate_tests?

Ca; ID int (1000), int char (36)? sau altceva?

0
Bună. Scuze pentru răspunsul întârziat. Îți urmez raționamentul. ID-ul nu există, dar este posibil să se adauge. Motivul pentru care vreau să fac acest lucru este acela că câmpul ID (adică lets say int (10)) va fi incrementat la fiecare salvare Exemplu: Screen => 5 opțiuni, id 1-5 Dacă modific și editez modificările mele, cele 5 optiuni vor avea acum id 6-10.Dacă exemplul 1000screen, fiecare 5 opțiuni veți vedea, ID-ul va fi MIGHTY mare într-un timp scurt.Am încărcat cu cheie primară, screen_id în model, doar pentru testare.
adăugat autor Tom, sursa
Motivul a fost datorat jQuery și adăugarea/eliminarea ajax a datelor din formular pentru adăugare/editare. Mi-am re-scris jQuery acum, și este de lucru bine cu saveAll. Mulțumesc oricum: p A vrut să folosească prim-cheie Composite, dar am constatat că tortul nu o acceptă.
adăugat autor Tom, sursa
Wow, ok, există o modalitate de a face acest lucru - un fel de - și este destul de intensă, pentru că tu esti suprema magia tortului. Închinarea convențiilor tortului este o durere atât de catastrofală pe care ați putea să o reconsiderați folosind tortul. Înainte de a mă sapa, cum ați reușit să încărcați schema de model și să dobândiți o cheie primară "id" dacă câmpul nu există? Câmpul sigur nu există pe masa respectivă și nu există o modalitate rezonabilă de a adăuga acest lucru?
adăugat autor OpenSorceress, sursa
De ce va fi sporită la fiecare salvare? Metoda de salvare implicită a metodei Cake() este o metodă de upsert - verifică existența unei înregistrări prin id și generează o instrucțiune UPDATE dacă o găsește.
adăugat autor OpenSorceress, sursa
Puteți manipula cheile primare în acest sens în Cake, dar acest lucru este cam obscur. Felicitări pentru remediere. :)
adăugat autor OpenSorceress, sursa
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT

MySQL - comunitatea Română
MySQL - comunitatea Română
19 participanți

Comunitatea română a programatorilor MySQL.