我正试图将所有TicketMethod
对象链接到所有Event
对象:
foreach (Event::all() as $event) {
$event->ticketMethods()->attach([1, 2]);
}
1和2是数据库中
TicketMethod
的唯一id。在我的
Event
中,我有以下代码:public function ticketMethods()
{
return $this->belongsToMany('App\Models\TicketMethod', 'event_ticket_methods');
}
例外情况:
[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))
事件id字段采用二进制格式,这会导致问号。
我没有得到错误,因为事件存在,我刚刚检索它们…
最佳答案
最后检查了我所有的迁移。event_id
列的长度与events表中的id
字段的长度不同。
关于mysql - Laravel同步引发完整性异常(即使存在),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46490199/