我有一个读取 CSV 文件的应用程序(使用 CakeDC CsvImportBehavior),然后显示一个屏幕供用户将 CSV 文件中找到的字段映射到数据库表。这一切都很好。我创建了一个显示数据库模型表单字段的视图,并带有选择框来选择与该模型行关联的 CSV 行。保存时有 3 个数组:
字段映射数组:
array( 'Map' => array( 'name' => '0', 'address' => '5', 'city' => '6', 'use_city' => '1', 'state' => '7', 'use_state' => '1', 'zip' => '8', 'use_zip' => '1', 'details' => '12' )
)
CSV 标头数组
array( (int) 0 => 'Name', (int) 1 => 'Email', (int) 2 => 'HR', (int) 3 => 'HR Email', (int) 4 => 'Company', (int) 5 => 'Address', (int) 6 => 'City', (int) 7 => 'State', (int) 8 => 'Zip', (int) 9 => 'Phone', (int) 10 => 'Number', (int) 11 => 'Frequency', (int) 12 => 'Details', (int) 13 => 'Date Signed'
)
具有 CSV 标头作为属性的模型数组(这是需要修改的模型)
array( (int) 0 => array( 'Marker' => array( 'Name' => 'Randy Watson', 'Email' => ' @SBCGlobal.net', 'HR' => 'Randy Watson', 'HR_Email' => 'bogusjunk@sbcglobal.net', 'Company' => 'Secure Financial, Inc.', 'Address' => '2865 Sombrero Circle', 'City' => 'San Ramon', 'State' => 'CA', 'Zip' => '94583', 'Phone' => '925-973-1088', 'Number' => '6', 'Frequency' => '$60', 'Details' => '', 'Date_Signed' => 'Mar 6, 11:10 2011' ) ),
...
所以基本上我必须让数组 #3 的键代表数组 #1 中所做的选择,以便它们匹配并且可以通过 model->save() 保存......非常感谢任何输入。