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

Laravel带UUID的模型路由绑定无法实例化模型求助

问题解决:Laravel路由模型绑定返回空模型

你的核心问题出在Marker模型的主键类型配置上,从dd输出能看到#keyType: "int"和+incrementing: true,这会让Laravel尝试用整数类型去匹配UUID格式的主键,导致查询不到数据,最终返回空模型。

修复步骤:

修改Marker.php模型,显式指定主键类型为字符串,且非自增:

# app/Map/Models/Marker.php

class Marker extends Model
{
    use HasUuids;

    protected $table = 'map_markers';
    // 添加这两行配置
    public $keyType = 'string';
    public $incrementing = false;

    protected $fillable = ['lat', 'lng'];
}

问题原因说明:

虽然你使用了HasUuids trait,但它不会自动修改keyType和incrementing的默认值。Laravel默认假设主键是自增整数,而你的表用的是UUID字符串主键,类型不匹配导致路由模型绑定查询失败,只能返回空模型。

验证修复:

修改后重新请求接口,控制器注入的Marker $marker应该能正确加载对应UUID的模型数据,exists属性会变为true,同时包含数据库中的字段值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:34:52