Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Laravel 5.1完整性约束冲突:1452中添加外键?_Php_Mysql_Laravel - Fatal编程技术网

Php 如何在Laravel 5.1完整性约束冲突:1452中添加外键?

Php 如何在Laravel 5.1完整性约束冲突:1452中添加外键?,php,mysql,laravel,Php,Mysql,Laravel,我正在将外键添加到Tickets表中。另一个表是票证状态 在artisan中,我执行了以下命令:php artisan make:migration add_ticket_status_to_tickets_table 这是迁移文件中的代码: class AddTicketStatusToTicketsTable extends Migration { /** * Run the migrations. *

我正在将外键添加到Tickets表中。另一个表是票证状态

在artisan中,我执行了以下命令:php artisan make:migration add_ticket_status_to_tickets_table

这是迁移文件中的代码:

      class AddTicketStatusToTicketsTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {

            Schema::table('tickets', function ($table) {
                $table->integer('ticket_status_id')->unsigned();
                $table->foreign('ticket_status_id')->references('id')->on('ticket_statuses')->onDelete('cascade');
            });

        }
     }
之后,我尝试建立一种关系。这是我在票证模型中的代码

class Ticket extends Model
{

    // Ticket __belongs_to__ Ticket Status
    public function ticket_status()
    {
        return $this->belongsTo('App\TicketStatus');
    }
}
在artisan中,我执行了php artisan迁移,但遇到了一个错误

[Illuminate\Database\QueryException]
  SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`idealcrmalphadb`.`#sql-4ea_1ce`, CONSTRAINT `tickets_ticket_status_id_foreign` FOREIGN KEY (`ticket_status_id`) REFERENCES `tickets` (`id`) ON DELETE CASCADE) (SQL: alter table `tickets` add constraint tickets_ticket_status_id_foreign foreignkey (`ticket_status_id`) references `tickets` (`id`) on delete cascade)

 [PDOException]
  SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`idealcrmalphadb`.`#sql-4ea_1ce`, CONSTRAINT `tickets_ticket_status_id_foreign` FOREIGN KEY (`ticket_status_id`) REFERENCES `tickets` (`id`) ON DELETE CASCADE)

我在模型部分出错了吗?请帮助检查迁移表名和引用表名。你犯了个错误

UPD:


看起来您在tickets表中已经有了数据。如果是这样,你现在可以试试

$table->integer('ticket_status_id')->unsigned()->nullable();

你确定它在('tickets')上吗?您可能有另一个用于记录票证状态的表。类似于
ticket\u状态
。如果是这种情况,请将('tickets')更改为('ticket\u status')或更改为您的ticket status表的名称。Hi@Doom5。我有一张票证状态表$表->外部('ticket\u status\u id')->引用('id')->on('ticket\u status')我已经检查了迁移和引用表名称。它看起来是正确的。看起来您在
票证
表中已经有了数据。如果是这样,您现在可以尝试
$table->integer('ticket_status_id')->unsigned()->nullable()