关于fastadmin三表关联的详解

ABC三张表,fastadmin提供的自动生成工具,只支持A-B A-C模式,不支持A-B-C 模式,不多啰嗦解决的过程,只说结果:

1、用自动生成工具,先把大概的架子弄出来。然后基于此进行更改。

2、找到需要修改的控制器对应php。注意里面有一段:


对于选择了关联模型的情况,index已经被复制并修改了,而edit是后续需要用到的。也可以拷贝出来。

3、index的具体修改方法
在这里插入图片描述
有三段需要修改的内容。
第一段,total不需要关联太多,用A-B即可。C是不需要的。
第二段,核心,完全按图片里的示例改。mode什么的,都用不到,需要用Db::name(‘staff’) 作为A表,再分别join BC表。field表示需要的字段,名称不能有重复,要注意用别名。
第三段,删除原来的foreach。这里不多解释,自己可以看看如果不删,会怎么样。

修改完毕后,发现报错,找不到db。 需要在php文件开头,加:
在这里插入图片描述

至此,查询功能已经没问题。 但是发现,编辑不行。报 未发现数据。

4、调整edit
在这里插入图片描述
edit,其实改法和index差不多。list的查询,改为row的单行查询。注意最后面是 find,而不是select。

5、写在最后。
其实这个事情做了两次,花了很久。 第一次,index改的基本没问题,但是没有现在做的简单,也完全不理解原理,这次基本吃透了,遇到其他问题也会更容易解决。 第二次,就是昨天晚上发现edit不行,一直到今天10点才研究清楚,花了大概4个小时。

想对年轻人说,解决不了,是因为不够努力。
我不是个专职程序员,10年前是VB程序员,后来一直做项目管理。php、js、html,都没有系统性学习过和使用过。但是我够努力,解决不了,我会一直研究下去。

--------------华丽分割线-----------------------------------------------------
写完上面的文章之后,发现两个问题:
1、edit其实不用改。之前的错误,是因为index里面缺少了对删除数据的过滤条件,所以总是报查不到数据,是真的查不到。

2、调整了之后,发现查询有问题,无法查B、C表的字段,系统无法认,当名称都是name的时候,用了别名,就无法处理了。

3、突然想到视图。以前也用过视图,就是把ABC都弄到一个view里,但是遇到了各种问题后,调整了一个系统参数,会导致金额字段,只显示到元。 只能放弃视图。
今天尝试了一下,把BC组成视图后,没有遇到任何问题,顺利完成。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值