2011-11-03 117 views
1

你好一切都對嗎? 我的問題是這樣的:使用CakePHP,保存額外的字段(id,值,金額)HABTM表

我有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)我不得不添加了兩個附加字段(),因爲該值的產品不穩定,另一種是客戶購買的數量。

當我把在加()頁:

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

CakePHP的渲染,直到後來我明白了。

但我需要的是:客戶必須選擇產品量的它,或者即使是這樣,在產品價值發送不僅的ID(什麼,我確定'銷售'後創建一個頁面來報告金額)。

然後:
- 如何保存產品的ID和值在同一時間?
- 我以正確的方式使用表格/關係?
- 有什麼更好的方法來做到這一點?

對不起,我的英文。 我希望你能理解。

回答

3

而不是HABTM,我想你想使用「hasMany through」,在那裏你爲products_sales創建一個單獨的模型。下面是來自蛋糕手冊的描述:

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

有一個更爲完整的描述在蛋糕1.3手動:

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

+0

我設法如下解決這個問題:不停的HABTM關係,並且在銷售頁面上選擇產品後,將用戶重定向到獲取與該銷售相關的所有產品的頁面,然後用戶輸入每個產品的數量。這是我找到的最實用的方法,但仍然不是我想要的方式。 –