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

自定义删除操作出现「Trying to get property of non-object」错误求助

解决「Trying to get property of non-object」错误及正确实现批量删除逻辑

嘿,我帮你分析下问题所在,顺便把代码修正过来~

你遇到的「Trying to get property of non-object」错误,其实是个很常见的小坑:你用对象的属性访问符->去操作一个数组了!看你代码里的$res = $request->all();,Laravel的$request->all()返回的是关联数组,不是对象,所以$res->member_id这种写法肯定会报错,得改成数组访问方式$res['member_id']。当然,更优雅的方式是直接用请求对象的input()方法获取参数,能避免这种数组/对象混淆的问题。

另外看你代码没写完,我把完整的删除逻辑给你补上,分两种场景供你选择:

场景1:需要先查询记录再做额外处理(比如日志、关联数据清理)

public function TestDelet(AcademicoRequest $request) {
    // 直接从请求获取member_id,比用all()更清晰安全
    $memberId = $request->input('member_id');

    if ($memberId) {
        // 查询符合条件的所有学术记录
        $academicos = Academico::where('member_id', $memberId)->get();
        
        // 如果需要先处理这些记录(比如删除关联的其他表数据、打操作日志),可以遍历处理
        foreach ($academicos as $academico) {
            // 示例:删除关联的论文记录
            // DB::table('papers')->where('academico_id', $academico->id)->delete();
        }

        // 批量删除符合条件的记录
        $deletedCount = Academico::where('member_id', $memberId)->delete();
        
        // 返回删除结果
        return response()->json(['message' => "成功删除{$deletedCount}条学术记录"], 200);
    }

    // 如果没有传member_id,返回参数错误提示
    return response()->json(['message' => '请提供有效的member_id参数'], 400);
}

场景2:无需提前查询,直接删除(更高效)

如果不需要先获取记录做额外操作,直接执行删除语句就行,效率更高:

public function TestDelet(AcademicoRequest $request) {
    $memberId = $request->input('member_id');

    if ($memberId) {
        // 直接批量删除符合条件的记录,返回删除条数
        $deletedCount = Academico::where('member_id', $memberId)->delete();
        
        return response()->json(['message' => "成功删除{$deletedCount}条学术记录"], 200);
    }

    return response()->json(['message' => '请提供有效的member_id参数'], 400);
}

额外提醒

  • 尽量用Eloquent模型(Academico::where(...))代替DB门面,代码更简洁,还能利用模型的事件钩子(比如deleted事件)做后续处理。
  • 记得在AcademicoRequest里做好member_id的验证规则,比如设置为必填、整数类型,这样在进入控制器之前就能拦截无效参数,减少后续逻辑出错的可能。
  • 批量删除的时候不用手动遍历ID逐个删除,Laravel的delete()方法本身就支持批量操作,性能更好。

内容的提问来源于stack exchange,提问作者Vinícius Matos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:55:01