抱歉,如果标题错过了我的目标,但不知道如何命名。这是我的任务:
我有一个购物车,其中包含属于价格 (1:1) 的多个项目 (1:n)。
物品和价格之间的关系也在起作用:
class Item extends AppModel {
public $hasOne = 'Price';
}
class Price extends AppModel {
public $belongsTo = array(
'Item' => array(
'className' => 'Item',
'foreignKey' => 'id'
)
);
}
但是现在我选择(查找)了一个购物车并希望包含这些物品,这也可以正常工作:
class CartItem extends AppModel {
public $useTable = 'cart_items';
public $belongsTo = array('Item', 'Address');
}
但我真正需要的是获取每个项目的价格,这是行不通的(项目模型中的 afterFind()-Callback 中的 $result 不包括分配的价格和价格模型中的 afterFind()-Callback 不被调用找到购物车时)..
我在这里想念什么?
/编辑:最近的变化:
class AppModel extends Model {
var $actsAs = array('Containable');
}
class CartsController extends AppController {
public function getCart() {
$cart = ClassRegistry::init('CartItem')->find('all', array(
'contain' => array(
'Item' => array(
'Price'
),
'Address'
),
'conditions' => array(
'id_cart' => $cart['Cart']['id']
)
));
}
上述更改导致我将在找到的项目中获得价格,但仅在找到的最后一个项目中获得价格。