Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Zależności między tabelami
Forum PHP.pl > Forum > PHP > Frameworki
IceManSpy
Witam

Staram się rozkiminić jak działają zależności między tabelami. Mam 2 tabele: user i student. W table user jest klucz główny: usek_id ,a w tabeli student jest klucz obcy o nazwie use_id .

I teraz mam 2 modele:
user:
  1. class Model_User extends Zend_Db_Table_Abstract {
  2.  
  3. protected $_name = "user";
  4.  
  5. protected $_dependentTables = array('Model_Student');
  6. }

student:
  1. class Model_Student extends Zend_Db_Table_Abstract {
  2.  
  3. protected $_name = "student";
  4.  
  5. protected $_referenceMap = array(
  6. 'Users' => array( //co w ogóle oznacza tutaj oznaczenie Users ?
  7. 'columns' => array('use_id'),
  8. 'refTableClass' => 'Model_User',
  9. 'refColumns' => array('usek_id')
  10. )
  11. );
  12. }

w kontrolerze mam coś takiego:
  1. public function findAction() {
  2.  
  3. $accountsTable = new Model_Student();
  4. $accountsRowset = $accountsTable->find(1);
  5. $user1234 = $accountsRowset->current();
  6. $admins = $user1234->findDependentRowset('Model_User');
  7.  
  8. $this->view->admins = $admins;
  9. }

I dostaję error:
Cytat
Message: No reference from table Model_User to table Model_Student



P.S. W ogóle jak dodawać wartości dla kluczy obcych? Chodzi mi o to, że jak dodam user, któremu id jest automatycznie nadawane, to jak zrobić aby to id, było dodane także do tabeli student do kolumny use_id ?

Można wrzucać do kluczy obcych tylko przez metodę lastInsertId() ?

Nie mogłem wy edytować, bo robiły się dziwne znaki w kodzie, dlatego post pod postem.
zend
  1. //1
  2. $userRow = $studentRow -> findParentRow('Model_User');
  3.  
  4. //2 takiej funkcjonalności nie da się osiągnąć automatycznie w Zend_Db, conajwyżej mozesz się zainteresować doctrine/doctrine2
  5. $userRow = $modelUser -> createRow($data);
  6. $userRow -> save();
  7.  
  8. $studentRow = $modelStudent -> fetchNew();
  9. $studentRow -> user_id = $userRow -> user_id;
  10. $studentRow -> save();
  11.  


Mam nadzieje że choć trochę rozjaśniłem sprawę
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.