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

Laravel8使用Emadadly/laravel-uuid库通过UUID查询数据报错如何解决?

Laravel 8 集成Emadadly\LaravelUuid通过UUID查询数据报错解决方案

问题根因

你当前的调用方式缺少查询执行步骤,uuid()为该扩展提供的查询条件构造方法,仅调用该方法只会返回查询构造器实例,不会触发实际SQL查询也无法返回模型数据。

可行解决方案

  • 补充查询执行方法
    因为UUID具备唯一性,你可以在查询后追加->first()获取匹配的单条模型实例,修改查询代码为:
    $periode = Periode::uuid($input['periode_uuid'])->first();
    
    若存在多匹配场景可将first()替换为get()获取集合结果。
  • 确认模型UUID字段配置
    该扩展默认读取模型的uuid字段作为UUID匹配列,若你后续修改过字段名,可在模型中手动指定匹配列:
    use Illuminate\Database\Eloquent\Model;
    use Emadadly\LaravelUuid\Uuids;
    
    class Periode extends Model 
    {
        use Uuids;
        // 手动指定UUID匹配列,你当前用uuid作为字段名可省略该配置
        protected $uuidColumn = 'uuid';
    
        protected $table = 'periodes';
        public $timestamps = true;
        protected $fillable = ['uuid', 'program', 'tanggal', 'bulan', 'bulan_angka', 'triwulan', 'lainnya', 'tahun', 'aktif', 'soft_delete', 'created_at', 'updated_at', 'tahap', 'waktu_usulan_mulai', 'waktu_usulan_berakhir', 'waktu_laporan_mulai', 'waktu_laporan_berakhir', 'semester', 'biaya'];
    }
    
  • 校验数据一致性
    确认periodes表已创建uuid字段,且字段存储的值与你传入的$input['periode_uuid']格式完全一致,无多余空格、大小写不匹配等问题。

内容的提问来源于stack exchange,提问作者MUH. ISA S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 10:09:00