pea*_*ove 4 uuid unique-id symfony
我想创建一个唯一的ID,所以在我的代码中Controller.php,我这样写:
use Symfony\Component\Validator\Constraints\Uuid;
Run Code Online (Sandbox Code Playgroud)
然后在我的功能中:
$unique_id = $this->uuid = Uuid::uuid4();
Run Code Online (Sandbox Code Playgroud)
但是我收到错误消息:
尝试调用名为“ Symfony \ Component \ Validator \ Constraints \ Uuid”的类的未定义方法“ uuid4”。
您可以ramsey/uuid从https://packagist.org/packages/ramsey/uuid使用
composer require ramsey/uuid
Run Code Online (Sandbox Code Playgroud)
安装后:
use Ramsey\Uuid\Uuid;
function generateUid()
{
return Uuid::uuid4();
}
Run Code Online (Sandbox Code Playgroud)
您可以查看文档以获取更多信息。
将对象持久保存到数据库时,只有原则可以为您自动生成uuid。您可以在实体中像这样进行设置。
/**
*
* @ORM\Id
* @ORM\Column(name="id", type="guid")
* @ORM\GeneratedValue(strategy="UUID")
*/
protected $id;
Run Code Online (Sandbox Code Playgroud)
有时这确实是个问题,当您立即需要uuid来获取代码中的进一步指令时,却无法在该时间点持久化该对象。因此,我在使用此程序包方面取得了良好的经验:
https://packagist.org/packages/ramsey/uuid
<?php
namespace YourBundle\Controller;
use Ramsey\Uuid\Uuid;
/**
* Your controller.
*
* @Route("/whatever")
*/
class YourController extends Controller
{
/**
* @Route("/your/route", name="your_route")
*/
public function yourFunction(Request $request)
{
try {
$uuidGenerator = Uuid::uuid4();
$uuid = $uuidGenerator->toString();
} catch (\Exception $exception) {
// Do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5040 次 |
| 最近记录: |