我有一个Model::find()
调用会产生一个我以前从未见过的SQL警告。我希望别人能够通过指引我正确的方向来节省我一些时间。这里的错误:CakePHP没有选择
SELECT FROM `fica_alternative_plans` AS `FicaAlternativePlan`
WHERE `FicaAlternativePlan`.`district_id` = '4ec642e2-8270-4b74-b50d-9ca2147402e8'
很容易看到的错误(在选择列表中没有字段),当然,但我想知道我是怎么到这个位置。呼叫Model::find()
发生在DistrictsController
。正如你在下面看到的,只有少数几个相关模型(包括那些被注释掉的和这个)会引发这种错误。
$district = $this->District->find(
'first',
array(
'contain' => array(
'403bServiceModel' => array('ServiceProvider' => array('Address')),
'457bServiceModel' => array('ServiceProvider' => array('Address')),
'BusinessOfficer',
'County',
'FicaAlternativePlan', // => array('ServiceProvider' => array('Address')),
'PayrollContact',
'PrimaryContact',
// 'Section125Plan' => array('ServiceProvider' => array('Address')),
// 'SpecialFinalPayPlan' => array('ServiceProvider' => array('Address')),
// 'VebWorksitePlan' => array('ServiceProvider' => array('Address')),
'School' => array(
'order' => array('School.name'),
'PhysicalAddress'
),
'Superintendent',
'UnionPresident',
),
'conditions' => array('District.id' => $id),
)
);
该协会是非常标准的,所以我不知道什么样的条件可能会导致这种事情。显然,我已经发了一些东西,但我现在没有看到它。
谢谢。
UPDATE
我要补充一点,District hasOne FicaAlternativePlan
(同样为每个抛出警告的人,也同样为403bServiceModel
和457bServiceModel
其正常工作)。
对不起,如果这是一个天真的问题,但什么是“包含”?我没有在文档中看到它。 – eaj
你有没有尝试过,在像''fields'=> array('District。*')'选项中添加字段?你有没有尝试擦除缓存? (有时它缓存模式) – api55
@eaj包含是[行为(包含)](http://book.cakephp.org/view/1323/Containable) – api55