Migration 如何使用Drupal 8迁移设置节点的url_别名

Migration 如何使用Drupal 8迁移设置节点的url_别名,migration,drupal-8,Migration,Drupal 8,我使用Drupal8附带的迁移工具从专有CMS创建文章。为了将遗留数据库与Drupal分离,我首先将遗留CMS中的文章导出到Yaml文件中。我的文章有一个类似http://example.com/article/123/some-slug.html 如何将通过迁移创建的文章的url_别名设置为/article/123/some slug.html 更多的上下文。我的迁移模块modules/custom/My_migration如下所示: 文件../config/install/migrate.

我使用Drupal8附带的迁移工具从专有CMS创建文章。为了将遗留数据库与Drupal分离,我首先将遗留CMS中的文章导出到Yaml文件中。我的文章有一个类似
http://example.com/article/123/some-slug.html

如何将通过迁移创建的文章的url_别名设置为
/article/123/some slug.html


更多的上下文。我的迁移模块
modules/custom/My_migration
如下所示:

文件
../config/install/migrate.migration.my_article.yml
文件
../src/Plugin/migrate/source/Article.php

您可以使用此代码设置url别名

$system_path='/node/'.$node->id()//内部节点路径

$path_alias='/article/'.$alias_slug;//别名路径

$langcode='en'


\Drupal::service('path.alias\u storage')->save($system\u path,$path\u alias,$langcode)

您可以使用此代码设置url别名

$system_path='/node/'.$node->id()//内部节点路径

$path_alias='/article/'.$alias_slug;//别名路径

$langcode='en'

\Drupal::service('path.alias\u storage')->save($system\u path,$path\u alias,$langcode)

id: my_article
label: Migrates my articles
migration_group: my_migration
source:
  plugin: my_article
destination:
  plugin: entity:node
process:
  type:
    plugin: default_value
    default_value: article

  title: legacy_title

  # ... some more field mappings
<?php namespace Drupal\my_migration\Plugin\migrate\source;

use Drupal\migrate\Plugin\migrate\source\SourcePluginBase;
use Symfony\Component\Yaml\Yaml;

/**
 * Class Article
 *
 * @MigrateSource(
 *   id = "my_article"
 * )
 */
class Article extends SourcePluginBase {

  protected function initializeIterator() {
    $articles = Yaml::parse(file_get_contents('migration-data/articles.yaml'));

    foreach ($articles as $article) {
      $article['id'] = 'article-' . $article['legacy_id']; 
    }
    return $articles;
  }

  public function fields() {
    return [
      'legacy_title' => $this->t('Article title'),
      'legacy_url' => $this->t('Article URL'),
    ];
  }
}
- legacy_id: 123
  legacy_title: 'Article #123'
  legacy_url: '/article/123/article-123.html'
- legacy_id: 456
  legacy_title: 'Article #456'
  legacy_url: '/article/456/article-456.html'