Ben Doktrini bir POS sistemi inşa etmeye başladı. Ben bir sipariş alıyorum, ama ben bile Doktrini için uygun şekilde alt sınıfları kurmak olsun ya da olmasın hiçbir ipucu var.
Burada bir sipariş üzerine satır öğeleri için geldi modeli
lineItem: line_total, order_id, type
rentLineItem: returned_date_time, item_id, sold
buyLineItem: item_id
Veritabanı gibi görünüyor. Tip 1 (kira) veya 2 (satın alma) ya da bir
İşte satır öğesi sınıf
class lineItem extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('line_total','int');
$this->hasColumn('order_id','int');
$this->setSubclasses(array(
'rentLineItem' => array('type' => 1),
'buyLineItem' => array('type' => 2),
)
);
}
public function setUp()
{
$this->hasOne('order', array('local' => 'order_id', 'foreign' => 'id'));
}
}
İşte rentLineItem sınıf (buyLineItem benzer)
class rentLineItem extends lineItem
{
public function setTableDefinition()
{
$this->hasColumn('returned_date_time','datetime');
$this->hasColumn('sold','tinyint', 2); // just in case it is sold at the end of the rental
$this->hasColumn('item_id','int');
}
public function setUp()
{
$this->hasOne('item', array('local' => 'item_id', 'foreign' => 'id'));
}
}
İşte nesneleri çağrı var kodu
$q = Doctrine_Query::create()
->select('*')
->from('order')
->where('DATE(creation_date_time) = \'' . $theDate . '\'');
$orders = $q->execute();
$totalRents = 0;
$totalSales = 0;
foreach ($orders as $order) {
foreach ($order->line_items as $lineItem) {
if ($lineItem->type == 1) {
$totalRents++;
} else if ($lineItem->type == 2) {
$totalSales++;
}
}
}
İşte ben alıyorum hata
Fatal error: Uncaught exception 'Doctrine_Record_UnknownPropertyException' with message 'Unknown record property / related component "type" on "lineItem"' in
/Developer/Projects/VEL/lib/vendor/doctrine/Doctrine/Record/Filter/Standard.php:55 Stack trace: #0
/Developer/Projects/VEL/lib/vendor/doctrine/Doctrine/Record.php(1296): Doctrine_Record_Filter_Standard->filterGet(Object(lLineItem), 'type') #1
/Developer/Projects/VEL/lib/vendor/doctrine/Doctrine/Record.php(1255): Doctrine_Record->_get('type', true) #2
/Developer/Projects/VEL/lib/vendor/doctrine/Doctrine/Access.php(72): Doctrine_Record->get('type') #3
/Developer/Projects/VEL/manage/manage/dailyincomeexpensereport.php(29): Doctrine_Access->__get('type') #4 {main} thrown in
/Developer/Projects/VEL/lib/vendor/doctrine/Doctrine/Record/Filter/Standard.php on line 55