web-dev-qa-db-ja.com

複数の値を持つテキストフィールドを移行する

2つの値を許可する単純なテキストフィールドがあります。これをfield_textと呼びましょう。私のソースデータベースには2つの列があります。たとえば、text1text2です。

text1field_textの最初の値として使用し、text2field_textの2番目の値として使用するように migrate フィールドマッピングを設定したいと思います。

つまり、次のようなものです。

$this->addFieldMapping('field_text[0]', 'text1');
$this->addFieldMapping('field_text[1]', 'text2');
4
Kenny Wyland

移行クラスにprepareRow()メソッドを実装する必要があります。 prepareRow()内では、両方のソースフィールドを読み取り、それらを配列に追加できます。例を示します:

public function prepareRow($row) {
  $row->text1 = array($row->text1, $row->text2);
}

これで、ソースフィールド「text1」に両方の値が含まれ、「field_text」にマップできます。 「text2」はDNMに設定する必要があります(マップしないでください)。

10
ermannob