You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel中调用HTTP DELETE方法通过Zotero API删除在线文库条目

实现Zotero条目本地保存后同步删除线上条目的调整方案

1. 先纠正接口认知错误

你之前查阅的/keys/<key>接口是删除API访问密钥的接口,并非删除文库条目的接口。Zotero删除单个文库条目的正确请求规则为:

  • 请求方法:DELETE
  • 接口路径:https://api.zotero.org/users/<你的用户ID>/items/<条目对应的key>

2. 调整视图代码,传递当前条目标识

你现在每个表单对应一条Zotero条目,需要在表单中新增隐藏域,把当前条目的key随表单一起提交到后端,修改后的表单代码补充如下:

<form action="/reference/autoCreate" method="post">
    @csrf
    <div>
        <!-- 新增隐藏域传递当前条目key -->
        <input type="hidden" name="zotero_item_key" value="{{$data->data->key}}">
        <!-- 原有title等其他字段代码保持不变 -->
        @if (property_exists($data->data,'title'))
        <p>Titre: {{$data->data->title}}</p>
        <input type="hidden" name="title" value="{{$data->data->title}}" >
        @else
        <p>Titre not found</p>
        <input type="hidden" name="title" value="title unfound" >
        @endif
        <!-- 其余原有字段代码保持不变 -->
        <button type="submit" name='Ajouter' value="Ajouter"
        class="btn btn-success pl-5 pr-5">Ajouter</button>
    </div>
</form>

3. 调整store方法逻辑,添加删除请求

你之前store方法里重复拉取全量Zotero条目、删除第一条的逻辑完全错误,不需要额外拉取数据,直接用表单传递过来的条目key调用删除接口即可,修改后的store代码如下:

public function store(Request $request)
{
    // 保存到本地数据库的逻辑保持不变
    $reference_auto = new Reference;
    $reference_auto->user_id = Auth::user()->id;
    $reference_auto->title = $request->title;
    $reference_auto->authors = $request->authors;
    $reference_auto->year = $request->year;
    $reference_auto->edition = $request->edition;
    $reference_auto->url = $request->url;
    $reference_auto->save();
    
    // 本地保存成功后,调用Zotero接口删除对应线上条目
    $deleteResponse = Http::withToken('你的Zotero API密钥')->delete(
        'https://api.zotero.org/users/你的用户ID/items/'.$request->zotero_item_key
    );
    // 可加调试逻辑判断是否删除成功,比如判断$deleteResponse->status() == 204即为删除成功
    
    $message = "Nouvelle référence ajoutée avec succès."; 
    Alert::success('Ok !', $message);

    return redirect()->back();
}

原有代码失效原因说明

  • 接口地址错误:你之前构造的删除地址多了/keys层级,不符合条目删除接口规则
  • 逻辑匹配错误:每次都删除全量条目列表的第一条,和当前提交的条目没有对应关系
  • 接口功能理解错误:误把删除API密钥的文档当成了删除文库条目的文档

内容的提问来源于stack exchange,提问作者Andy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:45:02