2016-06-21 30 views
1

laravel-uuidパッケージでUUIDを生成しようとしています(プライマリキーではなく、ただ生成する)。ドキュメントはかなりわかりやすいので、readmeファイルによれば、UAIDは単に$uuid = Uuid::generate();を呼び出して生成する必要がありますが、空のオブジェクトを返します。 (私も試しました$uuid = Uuid::generate(1);Laravel UUIDの生成

私はそこに提供されているように(普通ではありません)、アプリケーションはエラーをスローしないので、すべてが正しいと思います。

これに代わる別のパッケージも歓迎します。

+1

'エコーUUIDをしてみてください::生成()'や '$のUUID = UUID ::生成(); echo $ uuid-> string' –

+1

@BenSwinburneが言ったことをもう一度:[ソース](https://github.com/webpatser/laravel-uuid/blob/master/src/Webpatser/Uuid/Uuid.php# L428)は、 'echo Uuid :: generate() - > time'を実行してv1のUUIDを取得できるように思えます。文字列のバージョンを取得するには ' - > string'を使用します。 – bishop

+0

これはうまくいきました...私は応答で返そうとするとオブジェクトが空になり、$ uuid-> stringを使用したときにはそれが機能しました。ありがとう! – Skatch

答えて

3

は、私はあなたがJSONレスポンスでそれを返すようにしようとした場合、オブジェクト全体が空を示し、実際のIDを取得するために$uuid->stringを使用していたが判明します。

+0

私たちの将来の自己が何をすべきか知っているので自己承諾してください! :) – bishop

1

あなたのシステムが正しい種類のエントロピーを提供していないため、$uuidが空である可能性があります。あなたはV4またはV5のUUIDのいずれかのためのこれらのライブラリの実装を試みる場合があります:

// https://tools.ietf.org/html/rfc4122#section-4.4 
function v4() { 
    $data = openssl_random_pseudo_bytes(16, $secure); 
    if (false === $data) { return false; } 
    $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100 
    $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10 
    return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4)); 
} 

// https://tools.ietf.org/html/rfc4122#section-4.3 
function v5($name) { 
    $hash = sha1($name, false); 
    return sprintf(
     '%s-%s-5%s-%s-%s', 
     substr($hash, 0, 8), 
     substr($hash, 8, 4), 
     substr($hash, 17, 3), 
     substr($hash, 24, 4), 
     substr($hash, 32, 12) 
    ); 
} 
+0

ありがとう、私は最後の手段としてこれを試してみたい、私はlaravelのために造られた何かを使いたかった – Skatch

1

このパッケージを使用すると、UUIDフィールドが自動的に生成され、UUIDフィールドに割り当てられます。また、UUIDキーで表示および更新することもできます。

https://github.com/EmadAdly/laravel-uuid

関連する問題