我想使用 migrate-module 将 Drupal7 网站的内容迁移到另一个 Drupal7 系统。
我必须添加和映射字段。drupal 中每种内容类型的字段都存储在一个名为field_revision_field_name
. 大多数字段的值都在列中field_name_value
。但是有些字段有另一种结构,所以我想检查该field_name_value
列是否存在。
我正在循环中加入表并在 mysql 查询中添加字段。问题是,并非每个表"field_revision_".$typeFields[$i]
(别名是$typeFields[$i]."_table"
)都有一列$typeFields[$i]."_value"
:
for ($i=0; $i < sizeof($typeFields); $i++) {
$query->join(
"field_revision_".$typeFields[$i],
$typeFields[$i]."_table",
"n.nid = ".$typeFields[$i]."_table.entity_id"
);
$query->addField($typeFields[$i]."_table", $typeFields[$i]."_value");
}
我想在进行查询之前检查一下,如下所示:
for ($i=0; $i < sizeof($typeFields); $i++) {
if($typeFields[$i]."_table" has Column $typeFields[$i]."_value"){
$query->join(
"field_revision_".$typeFields[$i],
$typeFields[$i]."_table",
"n.nid = ".$typeFields[$i]."_table.entity_id"
);
$query->addField($typeFields[$i]."_table", $typeFields[$i]."_value");
}
}