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,主键不要用奇奇怪怪的东西
标签:id,问题,TP5,表有,报错,关联,主键 来源: https://www.cnblogs.com/caijiqi190731/p/16309426.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。