2014-01-10 81 views
1
未知列

我有以下的数组,我想保存到数据库..CakePHP的:与saveMany

$this->ProgramApplication->saveMany($priApps); 

$priApps: 
Array 
(
    [0] => Array 
     (
      [ProgramCurrentResidence] => Array 
       (
        [program_id] => 3698076220130520 
        [customer_id] => jraer4081 
        [residence_duration] => 61-90-days 
        [residence_stability] => renting-leasing 
        [payment_current] => yes 
        [payment_amount_past_due] => 
        [landlord_name] => Blake Woods 
        [landlord_phone] => (269)777-7777 
        [landlord_fax] => 
        [notes] => 
       ) 


      [ProgramPreviousResidence] => Array 
       (
        [program_id] => 3698076220130520 
        [customer_id] => jrayner4081 
        [residence_duration] => 1year 
        [street_address] => 1637 Colfax Ave 
        [city] => The Harbor 
        [state] => me 
        [zip] => 49022 
       ) 
      ) 

    ) 

那不断抛出下面的错误...

数据库错误 错误:SQLSTATE [42S22]:未找到列:1054未知列'where子句中'ProgramCurrentResidence.program_id'

SQL查询:SELECT ProgramApplicationprogram_idProgramApplicationcustomer_idProgramApplicationsecondary_customer_idProgramApplicationsecondary_customer_relationshipProgramApplicationsales_associateProgramApplicationstoreProgramApplicationcreated_onProgramApplicationdate_submittedProgramApplicationdate_deliveredProgramApplicationstock_numberProgramApplicationdeal_statusProgramApplicationdeal_status_conditional_reasoningProgramApplicationtransfered_to_dealpackProgramApplicationpresubmittal_notesProgramApplicationunderwriters_notesProgramApplicationmodified_byexpreta2_x12programs AS ProgramApplication WHERE((ProgramCurrentResidenceprogram_id = '3698076220130520')和(ProgramCurrentResidencecustomer_id = 'jrayner4081'))LIMIT 1

这里是我的ProgramCurrentResidence模型...

<?php 
class ProgramCurrentResidence extends AppModel { 

    public $useTable = 'program_current_residences'; 

    public $primaryKey = 'program_id'; 

    public $belongsTo = array(
     'ProgramApplication' => array(
      'foreignKey' => 'program_id' 
      ) 
     ); 

} 
?> 

有点码从程序应用模型

<?php 

class ProgramApplication extends AppModel { 

    public $useTable = 'programs'; 
    public $primaryKey = 'program_id'; 

    public $actAs = array('Containable'); 

    public $belongsTo = array(
     'Inventory' => array(
      'foreignKey' => 'stock_number' 
     ), 
     'Customer' => array(
      'foreignKey' => 'customer_id' 
     ), 
     'Employee' => array(
      'foreignKey' => 'sales_associate' 
     ), 
     'CustomerPersonalInformation' => array(
      'foreignKey' => 'customer_id' 
     ), 
     'CustomerContactInformation' => array(
      'foreignKey' => 'customer_id' 
     ), 
     'CustomerMarketingOption' => array(
      'foreignKey' => 'customer_id' 
     ) 
    ); 


    public $hasOne = array(
     'Desklog' => array(
      'foreignKey' => 'program_id' 
     ), 
     'Funding' => array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramCurrentResidence' => array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramPreviousResidence' => array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramCurrentEmployment' => array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramPreviousEmployment' => array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramIncome' => array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramReference' => array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramAdditionalInformation' => array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramDoublePreviousEmployment'=> array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramDoublePreviousResidence'=> array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramExpense'=> array(
      'foreignKey' => 'program_id' 
     ), 
     'ProgramVerificationWorksheet'=> array(
      'foreignKey' => 'program_id' 
     ) 
    ); 

} 

?> 

这可能是包含你谈论..

// Get all the data corrosponding to the secondary customer 
       $secondaryRow = $this->Customer->find('all', array(
        'conditions' => array("Customer.customer_id" => $secondary), 
        'contain' => array(
         'CustomerPersonalInformation', 
         'CustomerContactInformation', 
         'CustomerMarketingOption', 
         'ProgramApplication' => array(
          'ProgramCurrentResidence', 
          'ProgramPreviousResidence', 
          'ProgramCurrentEmployment', 
          'ProgramPreviousEmployment', 
          'ProgramIncome', 
          'ProgramAdditionalInformation', 
          'ProgramDoublePreviousEmployment', 
          'ProgramDoublePreviousResidence', 
          'ProgramExpense', 
          'ProgramVerificationWorksheet' 
         ), 
         'CustomerInteraction' 
        ), 
       )); 

我知道表中包含使用的每个字段,但由于某些原因,它会继续吐出此错误?我假设它的模型,但我可能是错的。

+0

看起来好像从expreta2_x12表中选择的数据未加入ProgramCurrentResidence –

+0

expreta2_x12是数据库。 – Subie

回答

1

看起来好像你在ProgramApplication上找到了一个程序,ProgramApplication的模型与ProgramCurrentResidence没有任何关系。 您可能需要将hasOne或hasMany的ProgramCurrentResidence添加到ProgramApplication模型。

+1

从程序应用程序模型中添加了代码。它看起来是否正确或我需要添加hasMany? – Subie

+1

@Subie你可以发布你的整个ProgramApplication模型吗?因为从你展示的内容看来,这似乎应该起作用,问题可能是其他一些查询......你在上面的某个地方找到“包含”了吗? –

+1

我们有一个包含。我已经在上面发布了。 – Subie