Ben her sanatçının ismi, bir sanatçı tabloda saklanan Yaş vs gibi temel bilgiler, müzik sanatçıları sayıyorum diyelim. Onlar da bir yabancı anahtar olarak sanatçı kimliğini kullanarak sanatçı tabloya başvuran bir Albümler tablosundaki girdileri (albüm adı / albüm kapağı vs) var.
Ben Model_Artist (Artist.php) dosyası vardır:
class Model_Artist extends Zend_Db_Table_Abstract
{
protected $_name = 'artist';
protected $_dependentTables = array('Model_ArtistAlbums');
public function fetchArtistss()
{
$select = $this->select();
return $this->fetchAll($select);
}
}
ve Model_ArtistAlbums (ArtistAlbums.php) dosyası
class Model_ArtistAlbums extends Zend_Db_Table_Abstract
{
protected $_name = 'albums';
protected $_referenceMap = array(
'Artists' => array(
'columns' => 'alb_art_id',
'refTableClass' => 'Model_Artist',
'refColumns' => 'art_id'
)
);
// etc
}
benim denetleyicisi:
public function indexAction()
{
/* THIS WORKS
$art = new Model_Artist();
$artRowset = $art->find(1);
$art1 = $artRowset->current();
$artalbums = $art1->findDependentRowset('Model_ArtistAlbums');
foreach($artalbums as $album){
echo $album->alb_title."<br>";
}
*/
$arts = new Model_Artist();
$this->view->artists = $arts->fetchArtists();
}
view dosyasında:
$this->partial()->setObjectKey('artist');
echo $this->partialLoop('admin/list-artists.phtml', $this->artists);
ama sanatçı / list-artists.phtml bu kodu:
foreach($this->artist->findDependentRowset('albums') as $album):
// other stuff
endforeach;
ben bu hatayı alıyorum:
Fatal error: Call to a member function findDependentRowset() on a non-object
A var_dump
ve $this->artist
= NULL
.