5ucms论坛
标题:
fastadmin关联查询 通过另一张表的ID查到另一张表对应的名称 如管理员ID查管理员名称
[打印本页]
作者:
admin
时间:
2021-5-9 10:23
标题:
fastadmin关联查询 通过另一张表的ID查到另一张表对应的名称 如管理员ID查管理员名称
目前FastAdmin后台index方法支持一对一关联查询,比如我们通过管理员ID查管理员账号和昵称
------------------------------------------------
首先我们需要在当前控制器中添加以下属性
protected $relationSearch = true;
然后我们修改(修改的地方为红色,为目标表名,index方法可以从application/admin/library/traits/Backend.php里复制)控制器的index方法,代码如下:
$list = $this->model
->with(["admin"])
->where($where)
->order($sort, $order)
->paginate($limit);
如果需要展示并有搜索功能,在上边合适位置加,注意结尾有个分号
protected $searchField=["admin_id","admin.username","admin.nickname"];
----------------------------
然后在控制器对应的model(非关联model)中添加以下代码,
admin_id为当前表里记录的管理员id的字段名
:
public function
admin
()
{
return $this->belongsTo('
admin
', '
admin_id
')->setEagerlyType(0);
}
---------------------------
最后在/public/assets/js/backend/user/xxx.js中修改显示
{field: 'id', title: 'ID', operate: '='},类似这样合适的地方下边加
{field: '
admin_id
', title: '管理员ID'},
{field: '
admin.username
', title: '管理员名称'},
{field: '
admin.nickname
', title: '管理员昵称'},
但此时后台关联查询,是把整个admin表都查出来的,我们可以稍微做下安全防范,当然,如果后台只是自己一个人用,无所谓
作者:
admin
时间:
2021-5-9 11:53
测试功能,未实现
foreach ($list as $key to &$value){
unset($value["admin"]);
}
public function admin()
{
return $this->belongsTo('admin', 'admin_id')->setEagerlyType(0)->bind("username,nickname");
}
欢迎光临 5ucms论坛 (http://bbs.5ucms.com/)
Powered by Discuz! X3.2