当前位置: 首页 > 知识库问答 >
问题:

Laravel:可调解的重复错误SQLSTATE[23000]:完整性约束违反:1062重复项

薛兴德
2023-03-14

我正在尝试在代码中使用$media->onduplicateReplace();

public function update($id){

        $user = User::find($id);
        $user->name=request('name');
        $user->email=request('email');
        $user->password=request('password');
        $user->description=request('description');
        $user->country_id=request('country');
        $user->state_id=request('state');
        $user->city_id=request('city');
        $user->works_at=request('works_at');
        $user->studies_at=request('studies_at');


        $uid = $id;
        $img = Image::make(request('file'));

        $img->resize(800, null, function ($constraint) {
            $constraint->aspectRatio();
        });

        $img->crop(800,800);
        $img->save('uploads/users/images/'.$uid.'.jpg');

        $media = MediaUploader::import('uploads', 'users/images', $uid, 'jpg');
        $media->onDuplicateReplace();
        $user->attachMedia($media, 'image');

        $user->update();
        return redirect('/');
    }

这个东西也不起作用:

'on_duplicate' => Plank\Mediable\MediaUploader::ON_DUPLICATE_REPLACE,

如果文件已经存在,我如何制作媒体来替换它?

共有1个答案

曾永新
2023-03-14

当转回MySQL5.5.*时,我注意到了这样一个问题。syncmediaattachmedia并不重要,因为media表在附加到mediables之前就已经搞乱了。MySQL5.6可能消除了这样的错误,就像许多其他好的更改一样,所以我建议更新到它。然后使用syncmedia附加媒体。

顺便说一句,如果原因似乎不同,或者您无法在服务器上更新MySQL,有“肮脏”的解决方案。删除当前媒体并创建新媒体,因此不会出现冲突:

if ($user->hasMedia('image')) $user->firstMedia('image')->delete();
$media = MediaUploader::import('uploads', 'users/images', $uid, 'jpg');
$media->onDuplicateReplace();
$user->attachMedia($media->upload(), 'image');
 类似资料:
  • 我使用一个自定义的API请求到我的数据库来生成一个新的条目。 我的表格结构是这样的: 表结构 我将Incident_Type设置为唯一,因为这是我的系统的要求。当我向系统发布新条目时: 第一次很好。 第二次: 当我使用不同的事件id时,我得到错误: 为什么发送请求使用完全相同的条目,即使我更改了数据?我该怎么解决这个问题?

  • 我不确定这个错误是从哪里来的。我不知道它将如何尝试将副本添加到我的数据库中。思想?我打错电话了吗?我已经把范围缩小到我知道与签名部分有关的地方。我在DB中只有一列id

  • 我是拉雷维尔的新手,这是我在拉雷维尔的第一个项目。像往常一样,首先我正在开发一个完整的用户身份验证系统。我可以注册一个用户,可以发送用户验证电子邮件,点击该链接后,我可以激活一个新的用户帐户,可以登录和注销。但在那之后,每当我尝试注册另一个新用户并单击验证链接后,我都会遇到一个异常, 现在这是我的路线。php, 这是我的账户管理员 这是我的创建用户迁移文件 这是我的用户。php 现在有什么问题?

  • 我提交一个表单与AJAX和在网络我得到这个错误。 我正在使用Laravel5.6和迁移。这是此表的迁移。 这是我的控制器的功能。 我的文件上传成功,数据也被插入到数据库中,但我仍然收到这个错误。这不影响我,但想解决它吗?

  • 我有一个laravel 5项目,我想使用软删除方法,但每次删除后,我都会收到以下sql错误消息: 我试图关闭时间戳,但它没有停止,我用谷歌搜索它,我找不到任何解决方案。 迁移: 型号: 谢谢你的帮助。

  • 我的迁移: 但会导致查询异常:( SQLSTATE[23000]:完整性约束冲突:密钥“users\u identifier\u unique”的1062重复条目“76561198364059468”