使用表Events

时间:2018-10-21 11:32:46

标签: php laravel-5

我有一个表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中创建新项目,我是否编写此正确代码。

谢谢。

-更新- 输入原始数据时出现错误

{
    "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而不创建其他内容。谢谢。

1 个答案:

答案 0 :(得分:1)

您肯定有某种命名模型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;