1

CSV ファイルで見つかったフィールドをデータベース テーブルにマップするための画面をユーザーに表示するよりも (CakeDC CsvImportBehavior を使用して) CSV ファイルを読み込むアプリケーションがあります。これはすべてうまくいきます。データベース モデル フォーム フィールドを表示するビューを作成し、そのモデル行に関連付ける CSV 行を選択するための選択ボックスを用意しました。保存すると、3 つの配列があります。

  1. フィールド マッピングの配列:

    array(
    'Map' => array(
        'name' => '0',
        'address' => '5',
        'city' => '6',
        'use_city' => '1',
        'state' => '7',
        'use_state' => '1',
        'zip' => '8',
        'use_zip' => '1',
        'details' => '12'
    )
    

    )

  2. 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'
    

    )

  3. プロパティとして 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() を介して保存できるようになります...入力は大歓迎です。

4

1 に答える 1

0

よくわかりませんが、おそらくこれが役に立ちます: http://dev.mysql.com/doc/refman/5.1/en/load-data.html

于 2013-02-11T08:42:51.907 に答える