UUID APIを使用するにはどうすればよいですか?


9

この質問は、2012年に投稿された次の質問#21991と(ほぼ)重複していることを承知しています。しかし、その質問は、UUIDがコアにあるDrupal 8とは関係ありません。

参照:

Drupal 8コアモジュールのドキュメントにはUUIDが記載されていません。

Drupal 8のコアUUIDモジュールを活用して、Firebaseによって生成された一意のキーを持つ別の環境からインポートされたリレーショナルデータを移行およびマッピングできるかどうか疑問に思います。

更新:

UUIDはモジュールではないことを親切に指摘しました。

エンティティ(別名ノード)のデフォルトでUUIDレコードを作成するようで、エンティティ参照のマッピングに使用できるようです。

すでに一意のIDを持っている外部データを導入するときに、これを利用できますか?「ノード」IDがあり、UUIDでマッピングできますか?

さらなるコメントに基づいて更新:

目標は、エンティティとRESTモジュールでUUIDを使用することです。それぞれ、すでに一意のIDを持っている外部のリレーショナルデータをインポートするときにそうするのが賢明なようです。

私は、UUIDがどのように機能するか、何ができるか、できないか、UUIDを生成および検証する方法、外部IDを導入する場合に注意する必要があることを理解しようとしています。

回答:


10

私が知りたいのは、Drupal 8でUUIDを生成する方法だと思います。他にできることは他にないからです;)

エンティティはすべて自動的にUUIDを持つため、データを構成エンティティまたはコンテンツエンティティとして保存する場合は、uuidエンティティキーを定義するだけです。

自分でUUIDを生成するには、uuidサービスが必要です。

$uuid = \Drupal::service('uuid');
$uuid->generate();
$uuid->isValid($uuid_to_validate);

ありがとうございました。これまでのところ、それらは自動的に生成されることを理解しています。だからあなたは私があなたが言及したサービスを介して外部UUIDロジックを導入しなければならないことを提案しますか?しかし、それは世代のためです。特定のUUIDでエンティティを保存することもできますか?
ステファン

すみません、まだ試していません。そのため、もともとドキュメントを求めていたので、調査を行うことができます。
ステファン

私は上手く理解できていない気がします。(symfony)Dependencyインジェクションサービスのことであり、Webサービスではないことに注意してください。はい、エンティティを独自のUUIDで保存できます。既に持っている場合は、それをYourEntity :: create()に初期値として渡すだけです。
Berdir 2015

ありがとうございます。これ以外に、API以外の情報をどこで入手できるか知っていますか?APIだけを見ても全体像を把握するのは少し難しいからです。
ステファン

1
あなたが何をしようとしているのか私にはまだわからないので、あなたがどの写真を意味しているのかわかりません。UUIDコンポーネント/サービス自体については、言うまでもありません。UUIDを生成して検証するだけです。それがあなたの質問に答えない場合は、おそらく間違った質問をしました:)おそらく新しい質問として、達成しようとしていることを正確に尋ねてみてください。それは、エンティティまたはおそらくRESTモジュールがUUIDをどのように使用しているのかというよりも、UUIDについての質問ではない可能性があるためです。また、こんにちはスイス人の仲間:)
Berdir 2015

1

drushでuuidを生成するには:

drush php-eval "echo \Drupal::service('uuid')->generate();"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.