首先说清楚我想干嘛,下图是fastadmin的后台CRUD自动生成的商品表(只改了一点),可以看见“分类名称”和“商品单位”显示数据库原本的数字,我想要把他们关联上“商品分类表”和“商品单位表”,显示正常的“分类名称”和“商品单位”。
1、更改数据库模型
生成的数据库模型在application\admin\model\数据库名\数据库名.php,我之前创建了公共的模型,所以没用自动生成的,我的模型路径是:
商品表:application\common\model\Product\Product.php
分类表:application\common\model\Product\Type.php
单位表:application\common\model\Product\Unit.php
路径其实不重要,为了方便理解,我写上了路径。
在Product.php里加上关联
方法位置写在class里面就行了,belongsTo('模型路径', '主表外键', '关联主键', [], '左外联')。
2、更改控制器
数据的输出是控制器控制的,控制器路径是application\admin\controller\表名\表名.php。
因为是自动生成的,都是用默认方法,打开application/admin/library/traits/Backend.php,复制整个index方法粘贴在下面,this->model后面加上with
3、更改视图
视图路径是在public\assets\js\backend\product(表名)\product.js
直接找到初始化表格,原来的typeid改为type.属性。
然后就完成了。
4、增删改
因为属性变了,有时候添加修改方法也需要改。
路径:application\admin\view\product\product\add.html
效果
最后,如果对你有帮助请点个赞吧(っ °Д °;)っ。