laravel 与 uuid 的同步方法
laravel sync method with uuid
我有 2 tables categories
和 posts
第三个 table category_posts
是枢轴 table 来关联这两个 tables.
问题
问题是我使用 uuid
作为我的 table,当新行添加到 category_posts
时它没有得到 uuid
所以第二行会抛出错误,因为 ID 不是唯一的(两者都是空的)。
我正在寻找的是一种在我的同步方法中添加 uuid
的方法。
$post->categories()->sync($request->input('category_id'), false);
我使用的 和 uuid
包是 goldspecdigital
,它可以使用此代码
生成新的 uuid
\Ramsey\Uuid\Uuid::uuid4()->toString()
问题
如何将生成 uuid 代码添加到我的同步方法中,以便在它们添加到数据库时为每一行创建 uuid?
PS
我试过这样的代码,但显然没有成功,所以我在这里问:)
$post->categories()->sync([['id' => \Ramsey\Uuid\Uuid::uuid4()->toString()], $request->input('category_id'), false]);
你能试试这个吗:
$category_ids = (array) $request->input('category_id');
foreach( $category_ids as $category_id ) {
$data_to_sync[ $category_id ] = [ 'id' => \Ramsey\Uuid\Uuid::uuid4()->toString() ];
}
$post->categories()->sync( $data_to_sync, false );
这基本上是一种通过同步方法将附加数据传递给数据透视表 table 的方法。但我不确定它是否适用于主 ID。
如果它不起作用请告诉我
我有 2 tables categories
和 posts
第三个 table category_posts
是枢轴 table 来关联这两个 tables.
问题
问题是我使用 uuid
作为我的 table,当新行添加到 category_posts
时它没有得到 uuid
所以第二行会抛出错误,因为 ID 不是唯一的(两者都是空的)。
我正在寻找的是一种在我的同步方法中添加 uuid
的方法。
$post->categories()->sync($request->input('category_id'), false);
我使用的 和 uuid
包是 goldspecdigital
,它可以使用此代码
uuid
\Ramsey\Uuid\Uuid::uuid4()->toString()
问题
如何将生成 uuid 代码添加到我的同步方法中,以便在它们添加到数据库时为每一行创建 uuid?
PS
我试过这样的代码,但显然没有成功,所以我在这里问:)
$post->categories()->sync([['id' => \Ramsey\Uuid\Uuid::uuid4()->toString()], $request->input('category_id'), false]);
你能试试这个吗:
$category_ids = (array) $request->input('category_id');
foreach( $category_ids as $category_id ) {
$data_to_sync[ $category_id ] = [ 'id' => \Ramsey\Uuid\Uuid::uuid4()->toString() ];
}
$post->categories()->sync( $data_to_sync, false );
这基本上是一种通过同步方法将附加数据传递给数据透视表 table 的方法。但我不确定它是否适用于主 ID。
如果它不起作用请告诉我