1 (edytowany przez voidtec 2011-03-28 12:08:05)

Temat: jak ustawiać na sztywno dane w tabeli łączącej?

Witam, mam 4 tabele:
Vouchers, Partners, Categories, Voucher_categories(tabela łącząca) z kolumnami:
vouchers_id     categories_id     voucher_type created     modified    

Generalnie chodzi mi o to, żeby przy dodaniu rekordu do tabeli Vouchers i wybraniu kategorii z Categories do tabeli voucher_categories dodawało odpowiedni wpis z voucher_id, category_id a w polu voucher_type dawało zawsze '1'

Analogicznie jeśli dodam coś do tablei partners dodawało do voucher_categories, voucher_id(tu id z kategorii partners), category_id, a w polu voucher_type dawało '2'

W tej chwili po wygenerowaniu poniższych kodów za pomocą cake bake do tabeli łączącej w pole: voucher_type zawsze wstawia mi '0'.

Czy da się coś takiego zrealizować?
Gdzie, jak mam to wstawić? Gdzieś w modelu, czy we własnym kodzie metod add i edit?

W modelu tabeli Vouchers mam coś takiego:

<?php
class Voucher extends AppModel {
    var $name = 'Voucher';
    var $displayField = 'name';
    var $hasAndBelongsToMany = array(
        'Category' => array(
            'className' => 'Category',
            'joinTable' => 'vouchers_categories',
            'foreignKey' => 'vouchers_id',
            'associationForeignKey' => 'categories_id',
            'unique' => true,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'finderQuery' => '',
            'deleteQuery' => '',
            'insertQuery' => ''
        )
    );

}
?>

Model tabeli Categories:

<?php
class Category extends AppModel {
    var $name = 'Category';
    var $displayField = 'name';
    var $hasAndBelongsToMany = array(
        'Voucher' => array(
            'className' => 'Voucher',
            'joinTable' => 'vouchers_categories',
            'foreignKey' => 'categories_id',
            'associationForeignKey' => 'vouchers_id',
            'unique' => true,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'finderQuery' => '',
            'deleteQuery' => '',
            'insertQuery' => ''
        )
    );

}
?>