Php Drupal-以编程方式更改某些迁移术语的url别名
我正试图在Drupal中执行SQL查询,以便在几个站点上编辑一些分类术语的url_别名Php Drupal-以编程方式更改某些迁移术语的url别名,php,mysql,drupal,foreach,drupal-7,Php,Mysql,Drupal,Foreach,Drupal 7,我正试图在Drupal中执行SQL查询,以便在几个站点上编辑一些分类术语的url_别名 // Query to get aliases which contain event-category in alias. $aliases = db_select('url_alias', 'ua') ->fields('ua', array('alias')) ->condition('alias', '%event-category/%', 'LIKE')
// Query to get aliases which contain event-category in alias.
$aliases = db_select('url_alias', 'ua')
->fields('ua', array('alias'))
->condition('alias', '%event-category/%', 'LIKE')
->execute()
->fetchCol();
foreach ($aliases as &$ua) {
// Strip out event-category and replace with category
$new_alias = str_replace("event-category/", "category/", $ua);
// Update url_alias table
$update_db = db_update('url_alias')
->fields(array('alias' => $new_alias))
->condition('alias', '%event-category/%', 'LIKE')
->execute();
}
每次运行此代码时,正确的术语别名都会更改,但它们都会更改为第一个术语别名。例如:
- 事件类别/abc123=>category/abc123
- 事件类别/def456=>category/abc123
- 事件类别/ghi789=>category/abc123
据我所知,当dpm'ing$new_alias变量时,str_replace起作用。将更新查询条件更改为
->条件('alias'、'%'.$ua'%,'LIKE')
。我昨天一整天都在关注这个问题,看不到问题所在。