首页 > 解决方案 > 使用表事件的 id 插入 EventException 表时出错

问题描述

我有一个表 Events(id) 和表 EventException(event_id, from_new_date, to_new_date) ,其中 event_id 是 Events 表的外键。

我不知道这个会发生什么,当我运行时我在 => 中遇到错误。

$events = Events::find($id);
$exception = EventException::create(request()->all(), 'event_id' => $events);
return $exception;

我不知道我什么时候想从表 Events 中获取 id 并在 EventException 中创建新项目,我写这个是否正确。

谢谢你。

--updated-- 当我输入的原始数据是

{
    "from_new_date" :  "2018-10-13 09:00:00",
    "to_new_date" : "2018-10-13 16:00:00",
    "event_id" : 3
}

我得到了这样的错误:

"SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`capstone_project`.`event_exceptions`, CONSTRAINT `event_exceptions_event_id_foreign` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`)) (SQL: insert into `event_exceptions` (`from_new_date`, `to_new_date`, `event_id`, `updated_at`, `created_at`) values (2018-10-13 09:00:00, 2018-10-13 16:00:00, {\"id\":3,\"event_title\":\"Project HR Calendar\",\"event_type_id\":3,\"from_date\":\"2018-10-10 10:00:00\",\"to_date\":null,\"is_recurring\":0,\"created_by\":\"HR Manager\",\"remarks\":null,\"created_at\":\"2018-10-21 02:35:12\",\"updated_at\":\"2018-10-21 02:35:12\"}, 2018-10-21 13:20:53, 2018-10-21 13:20:53))"

我怎样才能创建只保存 event_id 而没有其他任何东西。谢谢。

标签: phplaravel-5

解决方案


你肯定有一些非常规的命名模型的方式Exception。哈哈

我假设你的request()->all()样子:

['event_id'      => ...,
 'from_new_date' => ..., 
 'to_new_date'   => ...]

尝试这个:

$event = Event::find(request()->input('event_id'));
$eventException = EventException::make(request()->all());
$eventException->event()->associate($event);
$eventException->save();
return $eventException;

推荐阅读