mysql - 即使存在,Laravel sync 也会抛出完整性异常

标签 mysql laravel laravel-5

我正在尝试将所有 TicketMethod 对象链接到所有 Event 对象:

foreach (Event::all() as $event) {
   $event->ticketMethods()->attach([1, 2]);
}

1 和 2 是 TicketMethod 数据库中唯一的 ID。

在我的事件中,我有以下代码:

public function ticketMethods()
{
        return $this->belongsToMany('App\Models\TicketMethod', 'event_ticket_methods');
}

异常(exception):

[Illuminate\Database\QueryException]                                         
  SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update   
  a child row: a foreign key constraint fails (`tickets`.`event_ticket_method  
  s`, CONSTRAINT `event_ticket_methods_event_id_foreign` FOREIGN KEY (`event_  
  id`) REFERENCES `events` (`id`) ON DELETE CASCADE) (SQL: insert into `event  
  _ticket_methods` (`event_id`, `ticket_method_id`) values (@/Y�� ���ʫB{�1�,  
   1), (@/Y�� ���ʫB{�1�, 2)) 

event_id 字段是二进制格式,这导致了问号。

我没有收到错误,因为事件在我刚刚检索到它们时就存在...

最佳答案

最后检查了我所有的迁移。 event_id 列的长度与事件表中的 id 字段不同。

关于mysql - 即使存在,Laravel sync 也会抛出完整性异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46490199/

相关文章:

mysql - Mariadb 语法错误 1064 (42000)

php - 使用 PHP 显示来自 MySQL 数据库的图像

php - 禁用 Update_Current_Timestamp MYSQL?

Laravel 5,使用 UUID 时无法获取刚刚保存的模型的 ID

mysql - 在 Shell 中将 MySQL 查询设置为多个变量

php - 如何将表中的最后一个 ID 插入到 MySQL 中的另一个表中?

php - laravel 中 redis 的问题

php - Laravel 表删除 id 列

php - 在 get 方法路由 laravel 中允许特殊字符

design-patterns - 在 laravel 5 中使用设计模式