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

Laravel中如何设置find方法通过ID_user字段而非ID查询

Laravel中修改find方法默认匹配字段为ID_user的实现方案

Laravel自带的find()方法默认绑定模型配置的主键字段做等值查询,要改为按ID_user字段匹配,可根据实际业务场景选以下方案:

  • 单次查询临时使用,不修改模型全局配置
    直接通过条件查询取单条即可,效果和find取单条完全一致:
    // 常规where写法
    $vacation = vacation::where('ID_user', 30)->first();
    
    // 更简洁的firstWhere语法
    $vacation = vacation::firstWhere('ID_user', 30);
    
  • 全局修改模型默认主键,所有find操作默认走ID_user匹配
    如果整个业务里vacation模型的默认查询主键就是ID_user,直接修改模型类的主键配置即可,原有调用find()的业务代码不需要改动:
    class vacation extends Model
    {
        // 指定默认主键字段为ID_user
        protected $primaryKey = 'ID_user';
    
        // 如果ID_user不是自增整数,需要补充关闭自增的配置
        public $incrementing = false;
        // 字段类型为字符串时才需要配置keyType,数字主键不需要加这行
        protected $keyType = 'string';
    }
    

注意:如果ID_user不是表内唯一字段,上述单条查询方法只会返回符合条件的第一条记录,需要查询该字段匹配的全部数据时请使用get()替代first()。

内容的提问来源于stack exchange,提问作者John-PT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:42:31