i think you miss something...
in the model... you should add more param in the has many and belongs
to so the update and delete is automaticaly done by cake..

here is my example code model :

* @package            cake
* @subpackage        cake.app.config
* @since            CakePHP(tm) v 0.2.9
* @version            $Revision: 4409 $
* @modifiedby        $LastChangedBy: phpnut $
* @lastmodified    $Date: 2007-02-02 07:20:59 -0600 (Fri, 02 Feb 2007) $
* @license
http://www.opensource.org/licenses/mit-license.php The MIT License
*/
class Mutation extends AppModel {
   var $name = 'Mutation';

   var $hasMany = array('Transaction' =>
                         array('className'     => 'Transaction',
                               'conditions'    => '',
                               'order'         => '',
                               'limit'         => '10',
                               'foreignKey'    => 'mutation_id',
                               'dependent'     => true,
                               'exclusive'     => false,
                               'finderQuery'   => ''
                         )
                  );

}

?>

<?php
/*
*
[EMAIL PROTECTED]
* @copyright        Copyright 2005-2007, Cake Software Foundation, Inc.
* @link
http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm)
Project
* @package            cake
* @subpackage        cake.app.config
* @since            CakePHP(tm) v 0.2.9
* @version            $Revision: 4409 $
* @modifiedby        $LastChangedBy: phpnut $
* @lastmodified    $Date: 2007-02-02 07:20:59 -0600 (Fri, 02 Feb 2007) $
* @license
http://www.opensource.org/licenses/mit-license.php The MIT License
*/
class Transaction extends AppModel {
   var $name = 'Transaction';

  var $belongsTo = array('Mutation' =>
                           array('className'  => 'Mutation',
                                 'conditions' => '',
                                 'order'      => '',
                                 'foreignKey' => 'mutation_id'
                           )
                     );

}

?>

you need to add the foreignkey array variable...

hope this help..i also tryin to figure it out on my own...hope helps..


On 8/30/07, LS <[EMAIL PROTECTED]> wrote:
>
> Hello, everyone!
>
> I would like a little help from you guys, if I may...
>
> I have 3 tables, wich are linked to each other with a "middle"
> controller...
>
> Transaction - TransactionCenter - Center
>
> These are the models:
>
> class Transaction extends AppModel {
>    var $name = 'Transaction';
>    var $belongsTo = array('Company', 'Person');
>    var $hasMany = array('TransactionCenter');
> }
>
> class TransactionCenter extends AppModel {
>    var $name = 'TransactionCenter';
>         var $belongsTo = array('Transaction', 'Center');
> }
>
> class Center extends AppModel {
>     var $name = 'Center';
>     var $hasMany = 'Transaction';
>     var $belongsTo = 'Account';
> }
>
> When the controller asks the model to save (with $this->Transaction-
> >save($this->data)), it saves successfully, but only the Transaction
> model. Not the TransactionCenter.
>
> When I as a print_r($this->data), before saving, here's what I get:
>
> Array
> (
>     [Transaction] => Array
>         (
>             [id] => 1
>             [description] => Sistema Construtora
>             [doc] =>
>             [value] => 2200.00
>             [due_date] => 2007-08-01
>             [person_id] => 1
>         )
>
>     [TransactionCenter] => Array
>         (
>             [0] => Array
>                 (
>                     [transaction_id] => 1
>                     [amount] => 1500.00
>                     [porcentage] =>
>                     [center_id] => 1
>                 )
>
>             [1] => Array
>                 (
>                     [transaction_id] => 1
>                     [amount] => 250.00
>                     [porcentage] =>
>                     [center_id] => 2
>                 )
>
>             [2] => Array
>                 (
>                     [transaction_id] => 1
>                     [amount] => 155.55
>                     [porcentage] =>
>                     [center_id] => 3
>                 )
>
>             [3] => Array
>                 (
>                     [transaction_id] => 1
>                     [amount] => 555.22
>                     [porcentage] =>
>                     [center_id] => 4
>                 )
>
>         )
>
> )
>
> Can anyone give me a hand? I've been bumping into the wall with this
> for quite some time...
>
> I already have data in Transaction and TransactionCenter tables. I
> added some custom data directly into the database to have a test for
> my layout and such. I am now trying to make the edit action to work to
> later make the add action.
>
> The CREATE TABLE statements:
>
> CREATE TABLE  `transactions` (
>   `id` int(10) unsigned NOT NULL auto_increment,
>   `created` datetime NOT NULL,
>   `modified` datetime NOT NULL,
>   `company_id` int(10) unsigned NOT NULL,
>   `person_id` int(10) unsigned NOT NULL,
>   `center_id` int(10) unsigned NOT NULL,
>   `doc` varchar(50) collate utf8_unicode_ci default NULL,
>   `due_date` date default NULL,
>   `value` decimal(10,2) default NULL,
>   `description` varchar(200) collate utf8_unicode_ci NOT NULL,
>   PRIMARY KEY  (`id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
>
> CREATE TABLE  `transaction_centers` (
>   `transaction_id` int(10) unsigned NOT NULL,
>   `center_id` int(10) unsigned NOT NULL,
>   `amount` decimal(18,2) NOT NULL,
>   `porcentage` decimal(18,2) default NULL,
>   PRIMARY KEY  (`transaction_id`,`center_id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
>
> CREATE TABLE  `centers` (
>   `id` int(10) unsigned NOT NULL auto_increment,
>   `created` datetime NOT NULL,
>   `modified` datetime NOT NULL,
>   `company_id` int(10) unsigned NOT NULL default '1',
>   `account_id` int(10) unsigned default NULL,
>   `name` varchar(250) collate utf8_unicode_ci NOT NULL,
>   `startdate` date NOT NULL,
>   `enddate` date default NULL,
>   `person_id` int(10) unsigned default NULL,
>   `protocol` varchar(250) collate utf8_unicode_ci default NULL,
>   `number` varchar(250) collate utf8_unicode_ci default NULL,
>   `description` text collate utf8_unicode_ci,
>   PRIMARY KEY  (`id`),
>   UNIQUE KEY `UN_COMPANYID_NAME` (`company_id`,`name`)
> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
>
> Thanks everyone.
>
> - LS
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to