簡體   English   中英

CakePHP-無法獲取HABTM數據以保存新記錄

[英]CakePHP - Can't get HABTM data to save with new record

所以我有兩個模型,Post和Event。 兩者“ haveAndBelongToMany”相互之間。

在Post.php模型文件中,我有以下內容:

public $hasAndBelongsToMany = array(
    "Events"=>array(
        "className"=>"Event",
        "joinTable"=>"events_posts",
        "foreignKey"=>"post_id",
        "associationForeignKey"=>"event_id",
        "unique"=>true
    )
);

在Event.php模型文件中,我有這個:

public $hasAndBelongsToMany = array(
        "Posts"=>array(
            "className"=>"Post",
            "joinTable"=>"events_posts",
            "foreignKey"=>"event_id",
            "associationForeignKey"=>"post_id",
            "unique"=>true
        )
    );

我的數據庫有一個名為“ events_posts”的表,其中包含兩個字段:post_id,event_id。

現在,在需要手動保存信息(而不是通過表單)的其他控制器中,我具有以下代碼塊:

$post_data = array(
        "Post"=>array(
            "image_id"=>$entry['id'],
            "image_url"=>$entry['images']['standard_resolution']['url'],
            "image_thumb"=>$entry['images']['low_resolution']['url'],
            "image_text"=>$entry['caption']['text'],
            "status"=>'1',
            "created_on"=>$entry['created_time'],
            "instagram_user_id"=>$user_id
        ),
        "Event"=>array(
            "Event"=>array($event['Event']['id'])
        )
    );
$result = $this->Post->save($post_data,array('deep' => true)); 

它正在保存新的帖子數據,但沒有將關系保存到events_posts表中。有人可以告訴我我做錯了什么嗎? 這真讓我發瘋。

將單數化的模型名稱用於關聯。 遵循模型和數據庫約定,並在Post模型中添加以下代碼。

class Post extends AppModel {

    public $hasAndBelongsToMany = array(
        "Event"
    );

}

然后,為了從控制器保存數據,您只需要save($ post_data)。

$result = $this->Post->save($post_data);

使用CakePHP 2.6.0和CakePHP 2.3.4進行了測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM