Laravel 5 updateOrCreate在应该更新时返回重复错误

Laravel 5 updateOrCreate在应该更新时返回重复错误,laravel-5,Laravel 5,我对Laravel更新或创建的理解是,如果给定的值存在,则更新表,否则会添加一条新记录,但我遇到的情况是,不是更新它,而是重复错误。这就是我所拥有的: $e = \App\Element::updateOrCreate( ['link' => $link], ['title'=>$title,'description' => $description] 这很好,但我有一张唱片: SQLSTATE[23000]:

我对Laravel更新或创建的理解是,如果给定的值存在,则更新表,否则会添加一条新记录,但我遇到的情况是,不是更新它,而是重复错误。这就是我所拥有的:

$e = \App\Element::updateOrCreate(
                ['link' => $link],
                ['title'=>$title,'description' => $description]
这很好,但我有一张唱片:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'blahblahblah' for key 'link' 

我想知道为什么updateOrCreate不能在这里正常工作。它是否应该保持
链接
列的原样并更新其余列?

可以检查值的开头或结尾是否有空格。你的暗示间接地解决了我的问题。为了找到您问题的答案,我检查了数据库中的值和要插入的值,发现数据库中的列的长度为255,我要添加的值是否更长。因此,起初laravel没有意识到它们是相同的,但是当mysql连接并尝试插入链接时,它们变成了相同的,因此出现了错误消息。因此,在尝试插入之前,我必须增加列的大小或缩短值。似乎有SQL争用条件导致了这个问题。对此有一个错误报告: