gpt4 book ai didi

cakephp 2.2.3 - 无法通过 hasMany 获取关联数据(加入模型)

转载 作者:行者123 更新时间:2023-12-04 05:25:18 26 4
gpt4 key购买 nike

我无法通过(加入模型)关联使用 hasMany 获取关联的模型数据。
我正在使用 cakephp 2.2.3
同样的发现在 cakephp 1.3 中没问题,所以我不知道怎么回事......

事件有许多 ScoresToEvent。
分数有许多 ScoresToEvent。
ScoresToEvent属于事件和分数。

ScoresToEvent 会有额外的信息,所以我不能使用 HATBM。

一些代码:

event.php    
class Event extends AppModel{
public $name='Event';
public $hasMany=array('ScoresToEvent');
public $belongsTo=array('Entity');
public $actsAs=array('containable');
}

score.php
class Score extends AppModel{
public $name='Score';
public $hasMany=array('ScoresToEvent');
public $belongsTo=array('Entity');
}

scores_to_event.php
class ScoresToEvent extends AppModel{
public $name='ScoresToEvent';
public $belongsTo=array('Event','Score');
}

当我检索数据时,我得到以下结果:
$this->Event->ScoresToEvent->find('all', array('recursive'=>2))
array(
(int) 0 => array(
'ScoresToEvent' => array(
'id' => '8',
'event_id' => '7',
'score_id' => '1'
)
),
(int) 1 => array(
'ScoresToEvent' => array(
'id' => '9',
'event_id' => '7',
'score_id' => '3'
)
)
)

在这种情况下,我必须获取事件和分数数据。

如果我尝试使用可包含的,它会返回模型“ScoresToEvent”与模型“Score”和这个数组无关,因此它不会检索分数数据......
$this->Event->find('all', array(
'contain'=>array(
'Entity',
'ScoresToEvent'=>array('Score'=>array('Entity'))
),
'conditions'=>array('Event.id'=>7));

array(
(int) 0 => array(
'Event' => array(
'id' => '7',
'entity_id' => '17',
'start_date' => '2012-07-24',
'status' => null,
'end_date' => null
),
'Entity' => array(
'id' => '17',
'title' => 'y',
'content' => '',
'subtitle' => '',
'type' => 'Evento',
'avatar' => null,
'image' => null
),
'ScoresToEvent' => array(
(int) 0 => array(
'id' => '8',
'event_id' => '7',
'score_id' => '1'
),
(int) 1 => array(
'id' => '9',
'event_id' => '7',
'score_id' => '3'
)
)
)
)

我的错在哪里?代码的哪一部分是错误的?
我在全新的 cakephp 2.2.3 安装上尝试了这个

谢谢大家

附言相同的代码在 cakephp 1.3 中正常工作
pps不考虑“实体”。

最佳答案

我认为是模型名称的问题。尝试重命名文件 scores_to_event.phpScoresToEvent.php .
但在这种情况下,我认为这个模型的最佳名称是:ScoreEvent.php,更合适。
在尝试向您的模型插入更多信息后,如下例所示:
进入 ScoreEvent.php

public $belongsTo = array(
'Event' => array(
'className' => 'Event',
'foreignKey' => 'event_id'
),
'Score' => array(
'className' => 'Score',
'foreignKey' => 'score_id'
)
);

关于cakephp 2.2.3 - 无法通过 hasMany 获取关联数据(加入模型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com