2
我有一個有很多IPN的訂單表。但是,我沒有使用cakephp約定,因爲IPN表來自Paypal。我想將訂單表的order_num字段加入到IPN表的自定義字段中。所以它會是這樣的: select * from orders left join ipn on orders.order_num = ipn.customcakephp一對多的自定義關係連接
如何在models/order.php中正確設置模型關係。
我有一個有很多IPN的訂單表。但是,我沒有使用cakephp約定,因爲IPN表來自Paypal。我想將訂單表的order_num字段加入到IPN表的自定義字段中。所以它會是這樣的: select * from orders left join ipn on orders.order_num = ipn.customcakephp一對多的自定義關係連接
如何在models/order.php中正確設置模型關係。
我相信這應該做的伎倆,假設我正確理解關係。
class Order extends AppModel {
var $primaryKey = 'order_num';
var $hasMany = array(
'Ipn' => array(
'className' => 'Ipn',
'foreignKey' => 'custom',
),
);
}
class Ipn extends AppModel {
var $belongsTo = array(
'Order' => array(
'className' => 'Order',
'foreignKey' => 'custom',
),
);
}
我想這和它的作品,但我有兩個關係 - 訂單的hasMany Orderproduct,訂單的hasMany IPN。在Orderproduct關係中,它是Orderproduct.order_id = Order.id。儘管IPN有效,但設置var $ primaryKey使得Orderproduct停止工作。 – jimiyash 2009-10-07 05:04:36
也許你可以在Ipn的beforeFind()中設置$ primaryKey的值呢?例如:function beforeFind(){$ this-> Order-> primaryKey ='order_num'; } function afterFind(){$ this-> Order-> primaryKey ='id'; } – 2009-10-08 20:42:11