Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Doctrine] problem dodawaniem rekordów z kluczem obcym
Sajrox
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam,

Niestety do dzisiaj praca z Doctrine przebiegała naprawdę sprawnie i przyjemnie aż do momentu gdy chciałem dodać rekord.

Próbuję dodać rekord do tabeli uzytkownicy a nastepnie numer telefonu do tabeli uzytkownicy_telefony i tutaj mam problem.
Przedstawię krótki kod żeby nie zanudzać (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Bląd który otrzymuje
  1. Couldn't get last insert identifier.


Według manuala oraz róznych poradników powinno działać a jednak (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
oto kod:
  1. <?php
  2. $u = new Uzytkownicy();    
  3.            $u->imie = $imie;
  4.            $u->nazwisko = $nazwisko;
  5.            $u->save();
  6.  
  7.  
  8.            $ut = new UzytkownicyTelefony();    
  9.            $ut->telefon = $telefon;
  10.            $ut->uzytkownicy_id = $u['id'];            
  11.            $ut->save();
  12. ?>


Podobnie jest z:
  1. <?php
  2. $u = new Uzytkownicy();    
  3.            $u->imie = $imie;
  4.            $u->nazwisko = $nazwisko;
  5.            
  6.            $u->UzytkownicyTelefony[0]->telefon = $telefon;
  7.            
  8.            $u->save();
  9. ?>



Klasa Uzytkownicy
  1. <?php
  2. abstract class BaseUzytkownicy extends Doctrine_Record
  3. {
  4.    public function setTableDefinition()
  5.    {
  6.        $this->setTableName('uzytkownicy');
  7.        $this->hasColumn('id', 'integer', 4, array('type' => 'integer', 'length' => 4, 'unsigned' => 1, 'primary' => true, 'autoincrement' => true));
  8.        $this->hasColumn('imie', 'string', 20, array('type' => 'string', 'length' => 20, 'notnull' => true));
  9.        $this->hasColumn('nazwisko', 'string', 40, array('type' => 'string', 'length' => 40, 'notnull' => true));
  10.    }
  11.  
  12.    public function setUp()
  13.    {
  14.        $this->hasMany('UzytkownicyTelefony', array('local' => 'id',
  15.                                                    'foreign' => 'uzytkownicy_id'));
  16.    }
  17. }
  18. ?>



Klasa UzytkownicyTelefony
  1. <?php
  2. abstract class BaseUzytkownicyTelefony extends Doctrine_Record
  3. {
  4.    public function setTableDefinition()
  5.    {
  6.        $this->setTableName('uzytkownicy_telefony');
  7.        $this->hasColumn('telefon', 'string', 40, array('type' => 'string', 'length' => 40, 'notnull' => true));
  8.        $this->hasColumn('uzytkownicy_id', 'integer', 4, array('type' => 'integer', 'length' => 4, 'unsigned' => 1));
  9.    }
  10.  
  11.    public function setUp()
  12.    {
  13.        $this->hasOne('Uzytkownicy', array('local' => 'uzytkownicy_id',
  14.                                           'foreign' => 'id'));
  15.    }
  16. }
  17. ?>


Kod troche obszerny ale to łatwy przykład (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) czy ktoś może mi pomoc ? Będę bardzo wdzięczny.

============= EDIT =============

Problem rozwiązany. Okazało się że aby operacja zakończyłą się sukcesem tabela uzytkownicy_telefony musi posiadac pole id (PRIMARY KEY) zwykle do tego typu tabel nie daje klucza bo nie bylo takiej potrzeby jednak widze ze Doctrine tego wymaga. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Sajrox 12.05.2009, 23:43:08
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 17:51