我正在尝试将所有 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/