web-dev-qa-db-ja.com

url引数からUUIDでエンティティをロードする方法は?

通常、ルートのパスには{entity_type}引数があり、Drupalはurl引数であるIDによってエンティティをロードします。たとえば、/node/{node}を定義するルートは/node/5で機能します。

エンティティをIDではなくUUIDでロードする必要があります。したがって、パスは/node/0ff3b31b-5abb-4377-bb00-af71882e38a4のようになります。

ルート定義である種のマッピングを定義することにより、UUIDによってエンティティをロードすることは可能ですか、またはこのために独自のParamConverterを作成する必要がありますか?

2
user21641

はい、これには独自のparamコンバータが必要です。デフォルトの実装はUUIDでのみロードできます。

プライマリIDがシリアルIDである限り、UUIDによるロードはパフォーマンスが低下します。つまり、最初にエンティティクエリを実行してIDをフェッチし、それをロードする必要があります。

3
Berdir

Berdirの回答についてコメントすることはできません。 drupal.orgでこの問題を参照したかっただけ https://www.drupal.org/node/2353611

1
simesy