【发布时间】:2015-10-03 03:46:46
【问题描述】:
我有一个 laravel 5 项目,我想使用软删除方法,但每次删除后我都会收到以下 sql 错误消息:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '7' for key 'PRIMARY' (SQL: insert into `fairkatert_task` (`id`, `user_id`, `editor_id`, `title`, `task`, `status`, `deadline_date`, `deleted_at`, `created_at`, `updated_at`, `milestone_id`) values (7, 1, 1, asdasdasdasdasd, asdasdasdasdasdasdasda, open, 2016-12-28 00:00:00, 2015-10-02 07:16:26, 0000-00-00 00:00:00, 0000-00-00 00:00:00, 0))
我试图关闭时间戳,但它并没有停止,我用谷歌搜索它,我找不到任何适合我的解决方案。
迁移:
public function up()
{
Schema::create('task', function(Blueprint $table)
{
$table->increments('id');
$table->string('user_id')->references('id')->on('user')->onDelete('cascade');
$table->integer('editor_id')->references('id')->on('user')->onDelete('cascade');
$table->string('title');
$table->text('task');
$table->enum('status', array('open', 'close', 'reopen'))->default('open');
$table->timestamp('deadline_date');
$table->softDeletes();
$table->timestamps();
});
}
型号:
<?php
namespace App\Http\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Task extends Model
{
use SoftDeletes;
public $timestamps = true;
protected $table = 'task';
protected $fillable = [ 'user_id', 'editor_id', 'title', 'task', 'status', 'deadline_date' ];
protected $dates = [ 'deadline_date', 'deleted_at', 'created_at', 'updated_at' ];
谢谢你的帮助。
【问题讨论】:
-
你的数据库有一行 id = 7 ???您可以查看该行的deleted_at列。
-
您出于某种原因重新插入。你没有更新。这是您必须调查的第一个线索。您的代码中某处存在错误,并且您发布的代码不是我们需要破解的最相关的代码片段,因为您编写的内容出现了逻辑错误。