我有一個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