cakephp HABTM协会saveAll?

cakephp HABTM协会saveAll?,cakephp,has-and-belongs-to-many,Cakephp,Has And Belongs To Many,我有两个表和一个联接表。我尝试使用$HASANDBELONGOMANY,但它不起作用,所以我为联接表创建了一个模型并使用了它 User hasMany Membership Membership belongsTo User, Club Club hasMany Membership. 我有一个保存到两个表的表单 function dashboard_add(){ $user = $this->Session->read('User'); $re

我有两个表和一个联接表。我尝试使用$HASANDBELONGOMANY,但它不起作用,所以我为联接表创建了一个模型并使用了它

User hasMany Membership
Membership belongsTo User, Club
Club hasMany Membership.
我有一个保存到两个表的表单

function dashboard_add(){

        $user = $this->Session->read('User');

        $register = false;

        if (!empty($this->data)) {



                if($this->Club->saveAll($this->data)){
                    $this->Session->setFlash(__('You have registered your club. You will be contacted soon!', true), 'default', array('class' => 'success'));
                    $this->redirect(array('action' => 'index'));
                } else {   
                    $this->Session->setFlash(__('There was a problem with your registration. Please, try again.', true), 'default', array('class' => 'warning'));
                }

        }


        if (empty($this->data)) {
            $this->data = $this->User->read(null, $user['User']['id']);
        }

        $this->set(compact('register'));

    }
用户模型具有

var $hasMany = array(
        'Membership' => array(
            'className' => 'Membership',
            'foreignKey' => 'user_id'
        )
    );
会员制模式已得到改进

var $belongsTo = array('User','Membership');
var $hasMany = array(
        'Membership' => array(
            'className' => 'Membership',
            'foreignKey' => 'club_id'
        ),
        'Upload' => array(
            'className' => 'Upload',
            'foreignKey' => 'club_id'
        )
    );
俱乐部模式已经过时

var $belongsTo = array('User','Membership');
var $hasMany = array(
        'Membership' => array(
            'className' => 'Membership',
            'foreignKey' => 'club_id'
        ),
        'Upload' => array(
            'className' => 'Upload',
            'foreignKey' => 'club_id'
        )
    );
我没有发现任何错误。俱乐部表将填充,但会员和用户表不会插入/更新

更新:调试($this->Club->save($this->data))

Array
(
    [User] => Array
        (
            [id] => 1
            [first_name] => this
            [last_name] => that
            [company_name] => other
            [city] => this
            [state] => that
            [zip] => other
            [telephone] => that
            [email_address] => this
        )

    [Club] => Array
        (
            [address] => fvdfvx
            [title] => xcvxcv
            [category] => xcvxcv
            [modified] => 2012-05-03 06:31:12
        )

)

我猜您使用的是CakePHP1.3.x。请参阅文档以了解cake如何同时保存多个模型,您需要生成一个包含所有要保存模型的数组。。例如:

Array
(
    [Article] => Array
        (
            [title] => My first article
        )
    [Comment] => Array
        (
            [0] => Array
                (
                    [comment] => Comment 1
            [user_id] => 1
                )
        [1] => Array
                (
                    [comment] => Comment 2
            [user_id] => 2
                )
        )
)

显然,在$this->data中,您只有一个简单的数组[User]。而不是要另存为示例中的多个数组

我希望我帮了忙。
问候。

我将阅读文档。在saveAll.correction之后,我用$this->data数组更新了我的问题。我已将其更改为save(),如文档所示。