pict-drupal.png i18nモジュールを導入したサイトで、db_rewrite_sqlを使ってSQL文を記述する場合には、以下の点に注意が必要。

悪い例

  1. SELECT nid FROM {node} WHERE status = 1 ORDER BY created DESC

良い例
  1. SELECT nid FROM {node} n WHERE status = 1 ORDER BY created DESC

これは、i18nモジュールがこのあとで、db_rewrite_sqlを使って以下のようにSQL文を修正するためです。

  1. SELECT nid FROM {node} n WHERE (n.language ='ja') AND ( status = 1 )ORDER BY created DESC

つまり、n.language = 'ja' の部分が動作するためには、FROM {node} ではなく、FROM {node} n でないとSQLクエリが失敗するからです。

 

あなたの評価: なし 平均: 1 (投票数: 3)