2017-02-28 57 views
0

我正尝试将文件迁移到具有大量自定义字段的自定义文件类型中。但是,它们似乎正在以document文件类型迁移,而不是迁移到我自定义创建的文件类型中。Drupal 7 - 将文件迁移到自定义文件类型

我使用的MigrateDestinationFile作为我的目标是这样的:

$this->destination = new MigrateDestinationFile(); 

我试图映射typethis answer建议是这样的:

$this->addFieldMapping('type')->defaultValue('custom_file_type'); 

此解决方案不起作用,当检查MigrateDestinationFile的可映射字段时,没有指定type字段,所以我认为这是该解决方案无法工作的原因。

如果有人能指出我如何迁移到一个自定义文件类型的例子,将不胜感激。也许我使用了错误的destination?或者我错过了一些非常明显的东西。

迁移的其他部分对此问题无关紧要。

回答

0

显然我有两个问题。第一个是当我们创建文件类型时,我们称之为file,由于某些原因,您不能将其设置为迁移目标,因为它在MigrateDestinationFile构造函数中已经是默认值(请参阅下面的代码)。

From file.inc:544 

/** 
* Basic initialization 
* 
* @param array $options 
* Options applied to files.  
*/ 
public function __construct($bundle = 'file', $file_class = 'MigrateFileUri', $options = array()) { 
    parent::__construct('file', $bundle, $options); 
    $this->fileClass = $file_class; 
} 

第二个问题是映射到外地本身。我只是不得不重新创建文件类型使用不同的名称后设置正确的目标是这样的:

$this->destination = new MigrateDestinationFile('product_download'); 

做这其中正确的内容类型,而不是document文件类型创建迁移文件之后。

相关问题