我有一个应用程序读取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中所做的选择,以便它们匹配并且可以通过模型保存 - > save()...非常感谢任何输入。