Ben üreticileri çekme gibi ürünler, gerekirse admin bunları düzenlemek ve her zamanki CRUD şeyler böylece ben, iki model oluşturmak için çalışıyor products
ve product_manufacturers
ediyorum. İşte tablolar için şema bulunuyor (bu değil finalized bu yüzden varsa herhangi bir öneriniz devam).
CREATE TABLE `product_manufacturers` (
`id` int(11) unsigned NOT NULL auto_increment,
`manufacturer_name` varchar(100) default NULL,
`active` tinyint(1) default '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
CREATE TABLE `products` (
`id` int(11) unsigned NOT NULL auto_increment,
`product_name` varchar(100) default NULL,
`manufacturer_id` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
Örnek veri:
(Ürünler) -
id product_name manufacturer_id
1 iPod Nano 4g 1
(Product_manufacturers) -
id manufacturer_name active
1 Apple 1
Ben iki model oluşturduk, ama aktif ürün üreticileri (ve evet, ben bir model autoloader kullanıyorum) dayalı ürünlerde çekerek sorun yaşıyorum.
protected function _initAutoload ()
{
// Add autoloader empty namespace
$autoLoader = Zend_Loader_Autoloader::getInstance();
$resourceLoader = new Zend_Loader_Autoloader_Resource(
array(
'basePath' => APPLICATION_PATH ,
'namespace' => '' ,
'resourceTypes' => array(
'form' => array('path' => 'forms/' ,
'namespace' => 'Form_') ,
'model' => array('path' => 'models/' ,
'namespace' => 'Model_')
)
));
// Return it so that it can be stored by the bootstrap
return $autoLoader;
}
application / modeller / product.php:
<?php
require_once 'Zend/Db/Table/Abstract.php';
class Model_Product extends Zend_Db_Table_Abstract
{
/**
* The default table name
*/
protected $_name = 'products';
protected $_dependentTables = array('Model_Manufacturer');
}
application / modeller / Manufacturer.php:
class Model_Manufacturer extends Zend_Db_Table_Abstract
{
/**
* The default table name
*/
protected $_name = 'product_manufacturers';
protected $_referenceMap = array(
'Model_Product' => array(
'manufacturer_id' => array('id'),
'id' => array('manufacturer_id'),
),
);
}
Ben Ürünler Model bir nesne oluşturma ve karşılık gelen bir üretici olan tüm ürünleri yazdırmak çalışıyorum ben, tamamen yanlış şeyler yapıyorum bir duygu var ve bu üretici etkin.
$model = new Model_Product();
$results = $model->fetchAll();
foreach ($results as $result) {
//print_r($result);
echo $result->product_name;
}
Herkes ürünleri model düzgün üreticileri modeline dayanır ki ben düzgün benim şimdiki kodunu değiştirmek nasıl konusunda tavsiye verebilir ben, model oluşturma yeniyim?
Ben yanlış dependentTables / referenceMap, ve bunun yerine getiriliyor yapmak modelinde de özel bir yöntem yaratmak olmalıdır ve belki bir manuel katılmak jenerik fetchAll
yöntemini kullanarak ayar bir his var üreticileri tablo ile, ya da uygun bir referenceMap ve dependentTables özellik bu sorunu çözmek istiyorsunuz?