使用CakePHP,保存额外的字段(id,value,amount)HABTM表

时间:2011-11-03 14:55:26

标签: php mysql cakephp cakephp-2.0

你好,一切都好吗? 我的问题如下:

我有3张桌子:

create table products (
    id int not null auto_increment primary key,
    name varchar(80) not null,
    mold varchar(80),
    amount int,
    value decimal(10,2),
    real_value decimal(10,2),
    created datetime,
    modified datetime,
    active boolean default 1
);

create table sales (
    id int not null auto_increment primary key,
    customer_id int not null,
    method_payment_id int not null,
    portions smallint(4),
    entry decimal(10,2),
    subtotal decimal(10,2),
    total decimal(10,2),
    debtor decimal(10,2), 
    expiration_date datetime,
    created datetime,
    modified datetime,
    active boolean default 1
);

create table products_sales (
    product_id int not null,
    sale_id int not null,
    amount smallint(4),
    value decimal(10,2)
);

products_sales (HABTM)中,我不得不添加两个额外字段(金额),因为产品的价值不稳定另一个是客户购买的数量。

当我输入add()页面时:

  echo $this->form->input('Product');

CakePHP渲染a,直到那时我明白了。

但我的需求是:客户必须选择产品数量,即使是,产品价值也是< strong>发送,不仅 ID(任何内容,我创建一个页面只是为了报告金额,确认后#39;销售&#39;)。 / p>

然后:
1 - 如何同时保存产品的ID和价值?
2 - 我正在以正确的方式使用表/关系?
3 - 有什么更好的方法可以做到这一点?

抱歉我的英文。 我希望你理解。

1 个答案:

答案 0 :(得分:3)

我认为您不想使用HABTM,而是使用“hasMany through”,为products_sales创建单独的模型。以下是蛋糕手册中的描述:

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasmany-through-the-join-model

Cake 1.3手册中有更完整的描述:

http://book.cakephp.org/view/1650/hasMany-through-The-Join-Model