在我的laravel-application中,我希望通过使用Cronofy API和来自cronofy-php的包来包含我的google-calendar。
现在,当我尝试更新一个事件时,该事件被复制,我真的不知道为什么:
下面是我的代码:
public function updateEvent(){
$cronofy = new Cronofy\Cronofy([
"client_id" => config('cronofy.client_id'),
"client_secret" => config('cronofy.client_secret'),
"access_token" => $access_token->value,
"refresh_token" => $refresh_token->value
]);
$new_start_date = date("Y-m-d\TH:m:s\Z", strtotime(request()->event['changes']['start']['_date']));
$new_end_date = date("Y-m-d\TH:m:s\Z", strtotime(request()->event['changes']['end']['_date']));
$params = [
'calendar_id' => (string)request()->event['schedule']['calendarId'],
'event_id' => (string)request()->event['schedule']['id'],
'summary' => request()->event['schedule']['title'],
'description' => request()->event['schedule']['body'],
'start' => (object)['time' => $new_start_date, 'tzid' => 'Etc/UTC'],
'end' => (object)['time' => $new_end_date, 'tzid' => 'Etc/UTC'],
];
$updated_event = $cronofy->upsertEvent($params);
return response(['success' => true, 'event' => $params]);
}如上所述,这将创建事件的副本,我有意希望对其进行更新/编辑。
有人能帮帮我吗?
发布于 2021-02-04 18:34:19
所以在我看来,你正在创建一个新的Cronofy对象,然后插入它,这将导致它被插入。要仅编辑现有日历事件,应使用编辑现有对象
因此,不是:
public function updateEvent(){
$cronofy = new Cronofy\Cronofy([
"client_id" => config('cronofy.client_id'),
"client_secret" => config('cronofy.client_secret'),
"access_token" => $access_token->value,
"refresh_token" => $refresh_token->value
]);
...它应该是这样的
public function updateEvent($id){
$cronofy = Cronofy\Cronofy::find($id);
$new_start_date = date("Y-m-d\TH:m:s\Z", strtotime(request()->event['changes']['start']['_date']));
$new_end_date = date("Y-m-d\TH:m:s\Z", strtotime(request()->event['changes']['end']['_date']));
$params = [
'calendar_id' => (string)request()->event['schedule']['calendarId'],
'event_id' => (string)request()->event['schedule']['id'],
'summary' => request()->event['schedule']['title'],
'description' => request()->event['schedule']['body'],
'start' => (object)['time' => $new_start_date, 'tzid' => 'Etc/UTC'],
'end' => (object)['time' => $new_end_date, 'tzid' => 'Etc/UTC'],
];
$updated_event = $cronofy->upsertEvent($params);
...我希望我能帮上忙
https://stackoverflow.com/questions/66043599
复制相似问题