3

我有一个函数 Company Profile 与用户控制器有关系 HABTM 与联合表 Companies_users 我的函数是

ublic function company_profile(){
//$logo= $this->Upload->upload('/img/company_logo', $this->data['logo']['a'],null, array('image/jpeg', 'image/jpg', 'image/png'));
$log = $this->Auth->User('id');
    // retrieve the data of the currently logged in user
$user = $this->User->find('first',array(
            'conditions'=>array('User.id'=>$log),
            'recursive'=>1
));
    //pr($user);exit();
    if($this->request->is('post') || $this->request->is('put')){
        //pr($this->request->data);exit;
        //pr($this->data);exit();
        if(isset($user['Company']) && !empty($user['Company'])){
        $newcompany = array();
        $this->User->Company->id = $user['Company'][0]['id'];
        $newcompany['Company'] = $this->data['Company'][0];
        $newcompany['Company']['id'] = $user['Company'][0]['id'];
        //pr($newcompany);exit();
        $this->User->Company->save($newcompany);
        }else{
        $this->User->Company->create();
        $newcompany = array();
        $newcompany['Company'] = $this->data['Company'][0];
        $newcompany['Company']['user_id'] = $log;
        pr($newcompany);exit();

        //newlogo = $this->request->data;
        //$newlogo['Company']['logo'] = $logo['urls']['0'];
        $this->User->Company->save($newcompany);
        //pr($newcompany);exit();
        $this->Session->setFlash('Company Profile Saved Successfully.');
        $this->redirect('/users/dashboard');

        }



    }else{
    $this->request->data = $this->User->read(null, $log);
    }
$this->loadModel('Category');
$categories = $this->Category->find('list');
$this->set(compact('user','categories'));

}

为什么它不保存在联合表上?请帮助我如何将它保存在联合表中目前我有这个数组

Array ( [Company] => Array ( [id] => [category_id] => 1 [name] => Infoperks Solutions [description] => Web development [user_id] => 1 )

)

4

1 回答 1

1

如果您指定了模型关联,则可以使用'deep' => true您保存连接的表数据。您可以尝试使用以下语法保存连接的数据:

$this->User->save($newcompany, array('deep' => true));
//instead of
//$this->User->Company->save($newcompany);

此链接肯定会帮助您保存您的 HABTM 相关数据。请询问它是否不适合您。

于 2012-08-08T04:33:28.473 回答