我有一个数据透视表post_tags
,它将存储post的id和标签的id
PS:
使用uuid
的所有表。
现在,当我试图在更新功能中添加/更改我的帖子标签时,它会返回以下错误:
message: "SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'tag_id' at row 1 (SQL: insert into `post_tags` (`id`, `post_id`, `tag_id`) values (d0fb529e-38ac-4197-9455-e41898de9d05, c4a41a90-1274-4830-8974-71d6b5834216, bd89cf45-bb85-4e4b-93f8-342e86dbaa31,9adc54df-e778-432d-be25-282169a7c5af))"
代码
//.....
$post->save();
$tags_id = (array) $request->input('tags');
foreach( $tags_id as $tag_id ) {
$tag_data_to_sync[ $tag_id ] = [ 'id' => RamseyUuidUuid::uuid4()->toString() ];
}
$post->tags()->sync( $tag_data_to_sync );
知道吗
已解决
我的标签ID就像"86198680-1f0b-4544-851a-4c39e4f7c3ec,2bbe9776-7413-43fa-9cae-3378f39f3c2d"
一样,我必须分解我的标签数据才能循环它们
$tags_id = explode(',', $request->input('tags'));
现在工作得很好。