美文网首页
自定义主键后,需要注意的地方

自定义主键后,需要注意的地方

作者: IT宝哥哥 | 来源:发表于2019-04-11 11:36 被阅读0次

订单Order模型覆盖主键后

protected $primaryKey = 'no';

关联模型OrderItem保存数据时报错(该模型主键获取到的是Order模型id主键数据,非定义的no字段的数据)

操作一:删除设置的覆盖主键

protected $primaryKey = 'no';

设置关联如下,提交数据正常

public function items() {
   return $this->hasMany(OrderItem::class,'order_id','no');
 }

无奈,重读 https://learnku.com/docs/laravel/5.6/eloquent/1403#eloquent-model-conventions Eloquent 模型约定--主键 部分

使用非递增或者非数字的主键,则必须在模型上设置 public $incrementing = false 。

最后在原基础上加一句,解决问题。

protected $primaryKey = 'no';
public $incrementing = false;//加上这句

知识点:
非递增或者非数字的主键,需要加上

public $incrementing = false;

非整数主键,需要加上

protected $keyType = string;

相关文章

  • 自定义主键后,需要注意的地方

    订单Order模型覆盖主键后 关联模型OrderItem保存数据时报错(该模型主键获取到的是Order模型id主键...

  • MyBatis-Plus 主键自增

    需要注意主键是从什么开始,随便设置的,12313132123开始,插入主键,就是从这个数开始了。

  • 小程序折线图

    注意要点: 1,通过小程序提供的canvas组件来绘制。需要注意地方是自定义的组件的包含canvas的时候,创建 ...

  • 小程序柱状图

    注意要点: 1,通过小程序提供的canvas组件来绘制。需要注意地方是自定义的组件的包含canvas的时候,创建 ...

  • 小程序双折线图

    注意要点: 1,通过小程序提供的canvas组件来绘制。需要注意地方是自定义的组件的包含canvas的时候,创建 ...

  • 小程序柱状折线双图

    注意要点: 1,通过小程序提供的canvas组件来绘制。需要注意地方是自定义的组件的包含canvas的时候,创建 ...

  • 小程序刻度盘

    注意要点: 1,通过小程序提供的canvas组件来绘制。需要注意地方是自定义的组件的包含canvas的时候,创建 ...

  • 小程序双柱状图

    注意要点: 1,通过小程序提供的canvas组件来绘制。需要注意地方是自定义的组件的包含canvas的时候,创建 ...

  • Mybatis在insert时返回主键id

    之前做的下面这种设置,总是返回1,干脆放弃了 换种做法,在xml中做设置 需要注意的地方:1、添加记录能够返回主键...

  • 5.dplyr处理关系数据(2)

    二、筛选连接 需要注意的问题 1.尽量寻找主键,而不是变量组合2.确保主键没有缺失值3.检查外键与主键是否相匹配 ...

网友评论

      本文标题:自定义主键后,需要注意的地方

      本文链接:https://www.haomeiwen.com/subject/gtftwqtx.html