TP5的多对多关联的问题

 

 TP5的多对多关联

在AModel内建立与用户的多对多关联

controller内查找数据

然后在前端调用模板的循环方法输出

 

 

 循环内调用多对多方法users

结果提示

 

一开始以为是因为数据不同步,中间表有的数据A表没有,或者A表有的数据中间表没有。所以

1.删了测试数据还是一样的问题,

2.随后又尝试重新写belongstomany方法,因为刚开始的中间表参数没加前缀,还是报错,

3.查看中间表model,没继承pivot,还是报错,

ok,第二天再看

第二天重走一遍还是错,无奈只能看框加底层怎么写的

 

 发现报错的属性id是从这边开始出现的

 

 

 

 

 

 直接从belongsToMany方法跳转到BelongsToMany.php文件找到157行

 

 第155行会自动获取A表的主键默认是id,但是重点来了,A表是没有id这个字段的

 

 主键是a_id。这不是坑爹吗

在Amodel里设置

 

问题解决。估计TP5的作者也不会想到主键不是id的情况吧。

最后画张图

 

 其中的关联键A的id和user的id,没设置的话默认都是id,最后说一句,定义model不要偷懒一定要proteced $pk,主键不要用奇奇怪怪的东西 

posted @ 2022-05-25 15:22  潇宸1998  阅读(162)  评论(0编辑  收藏  举报