我对这个问题很生气,请有人帮助我:)
我有这个模型:
订单有很多--> 订单项有一个--> 产品
产品有字段vendor_id。
我想对包含具有特定供应商 ID 的产品的订单进行分页。
我怎样才能实现这个目标?
我在订单控制器中的代码:
if(!empty($this->data['Order']['vendor_id'])) {
$conditions['Product.vendor_id']=$this->data['Order']['vendor_id'];
}
if(!empty($this->data['Order']['startdate'])) {
$conditions['Order.date >=']=$this->data['Order']['startdate'];
}
if(!empty($this->data['Order']['enddate'])) {
$conditions['Order.date <=']=$this->data['Order']['enddate'];
}
$this->paginate=array('conditions'=>$conditions,'order'=>'Order.id ASC');
它在“where 子句”错误中给出未知列“Product.vendor_id”。
我已经尝试了几项 Containable 但没有成功:(
也许只有在设置了vendor_id时才将递归属性设置为2:
if(!empty($this->data['Order']['vendor_id'])) {
$this->paginate['recursive'] = 2;
$conditions['Product.vendor_id']=$this->data['Order']['vendor_id'];
}
if(!empty($this->data['Order']['startdate'])) {
$conditions['Order.date >=']=$this->data['Order']['startdate'];
}
if(!empty($this->data['Order']['enddate'])) {
$conditions['Order.date <=']=$this->data['Order']['enddate'];
}
$this->paginate['conditions'] = $conditions;
$this->paginate['order'] = 'Order.id ASC';
或者,如果您愿意,您可以将递归设置为-1并手动构建连接..类似于:
$this->paginate = array('fields'=>'Order.*',
'conditions'=>$conditions,
'joins'=>array( array( 'table' => 'orderitems',
'alias' => 'Orderitem',
'type' => 'INNER',
'conditions' => array('Order.id = Orderitem.order_id')),
array( 'table' => 'products',
'alias' => 'Products',
'type' => 'INNER',
'conditions' => array('Product.id = Orderitem.product_id',
'Product.vendor_id'=>$this->data['Order']['vendor_id'])));
希望这有帮助,祝你好运
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)