[备忘]关于fastadmin给某个表的某个字段添加外部关联,这个关联是关联其它表。

需求:fastadmin给某个表的某个字段添加外部关联,在编辑界面中可以选择外部关联表的数据。

操作说明:

有一张表:奖品表

有一张表:奖品类型表

奖品表中包含了奖品类型(类型表id)字段。

此时:

我要通过fastadmin的CURD功能生成奖品表的增删改查,完了之后,在添加界面可选择各种奖品类型,如下图:

实现步骤:

奖品表设计:

如图:

这里关键点!awardtype_id,注意啦! 这个字段表示在列表、添加、编辑界面中,奖品类型字段会自动读取奖品类型表中数据,取值字段是id和name(根据数据值作为id去查询name),表设计建议跟随框架走,奖品类型表也设计成id,和name结构。(跟随框架走,少走弯路)。

关键点2!字段名awardtype_id千万别写成多级!否则框架会解析成多级路由!会报错!正确的做法是像我这样只写2级。

(错误示范:award_type_id,这是我原来的写法,在添加或编辑界面的时候会报错,原因是去获取奖品类型表的数据的时候,url地址是解析错了的)

 

如图:

奖品类型表设计:

提示:一定要有id和name字段,其它字段你随意。

温馨提示:

奖品类型表的名称可以任意写,然后在CURD界面要勾选关联模型。

具体操作是:

  1. 选择奖品类型表
  2. 选择奖品表中奖品类型字段
  3. 选择奖品类型表的id字段
  4. 选择奖品类型表的name字段

如图:

 

到这里,新增、编辑都不会出问题了。

 

但是!

列表会出问题,给报错了。怎么办?

分析原因是因为,框架在列表做数据转换读取的表名是全名,而在编辑和新增界面,读取读取表示根据字段来的,我这里字段是awardtype_id,那默认读取的表fa_awardtype。

例如:选择关联模型的时候选择的是fa_zc_award_type,那么列表在转换数据的时候调用的模型是ZcAwardType,而在用CURD生成奖品类型表的时候我设置的别名是awardtype,所以在新增和编辑的时候不会错。

怎么办呢?

最简单有效的方法是,将奖品类型表的名字改简单一点,例如:fa_zc_award_type 改成 fa_awardtype,千万别写成多级,这是坑!!!

改了之后重新刷新,操作一遍就不会错了。

 

总结一个道理:用别人的框架就要适应别人的思路,否则会踩各种坑,坑的你哇哇的~ 特别是新手这条道理非常重要!

 

以此备忘。

 

 

 

END

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SDL大华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值