我在cakephp中创建了一个具有典型HABTM关系的表单。假设我正在使用优惠券代码开发订单。从逻辑角度来看,我需要接受优惠券代码的文本输入,所以传入的数据不会是正确的主键,而是不同的字段。cakephp与输入而不是选择框的habtm关系?
然后我需要验证该数据并检索正确的主键ID,然后使用该coupon_id和order_id更新orders_coupons表。
当使用选择框时,该值将始终是正确的coupon_id,但是我在哪里放置逻辑来处理这个问题?我应该使用beforeSave修改数据吗?
从本质上讲,用户在优惠券代码键入文本框(没有选择,因为他们不应该能够选择优惠券代码)。当他们手动输入代码时,模型需要知道它不是HABTM关系的ID,所以需要查找输入的优惠券代码,确定真正的主键,并将* *保存到habtm表。 – helion3 2010-01-28 00:33:25
没错。所以你可以在模型中创建一个类似setCouponCode(code)的方法,它会假设你总是传递一个人类可读的优惠券代码(毕竟人们将如何知道coupon_id?),并使用它来找到真正的coupon_id,并且保存到HABTM。 – mlathe 2010-01-28 01:00:16