From fdb912e3e27f61fbb8cf23724e5905541a3856e4 Mon Sep 17 00:00:00 2001 From: Karson Date: Wed, 18 Jun 2025 17:01:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BC=9A=E5=91=98=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除User模型的group方法避免和基类group方法冲突 --- application/admin/controller/user/User.php | 5 +++-- application/admin/model/User.php | 4 ++-- application/admin/model/UserRule.php | 6 +++--- public/assets/js/backend/user/user.js | 9 +++++++-- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/application/admin/controller/user/User.php b/application/admin/controller/user/User.php index 6908ad67..94828e4f 100644 --- a/application/admin/controller/user/User.php +++ b/application/admin/controller/user/User.php @@ -41,7 +41,6 @@ class User extends Backend } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $list = $this->model - ->with('group') ->where($where) ->order($sort, $order) ->paginate($limit); @@ -49,7 +48,9 @@ class User extends Backend $v->avatar = $v->avatar ? cdnurl($v->avatar, true) : letter_avatar($v->nickname); $v->hidden(['password', 'salt']); } - $result = array("total" => $list->total(), "rows" => $list->items()); + $rows = $list->items(); + addtion($rows, [['field' => 'group_id', 'display' => 'group_name', 'model' => \app\admin\model\UserGroup::class]]); + $result = array("total" => $list->total(), "rows" => $rows); return json($result); } diff --git a/application/admin/model/User.php b/application/admin/model/User.php index 4a8f0c7e..a962091e 100644 --- a/application/admin/model/User.php +++ b/application/admin/model/User.php @@ -106,9 +106,9 @@ class User extends Model return $value ? $value : null; } - public function group() + public function getGroupAttr($value, $data) { - return $this->belongsTo('UserGroup', 'group_id', 'id', [], 'LEFT')->setEagerlyType(0); + return UserGroup::get($data['group_id']); } } diff --git a/application/admin/model/UserRule.php b/application/admin/model/UserRule.php index 86bb9fd4..c884b6ea 100644 --- a/application/admin/model/UserRule.php +++ b/application/admin/model/UserRule.php @@ -54,10 +54,10 @@ class UserRule extends Model Tree::instance()->init($ruleList); $ruleList = Tree::instance()->getTreeList(Tree::instance()->getTreeArray(0), 'name'); $hasChildrens = []; - foreach ($ruleList as $k => $v) - { - if ($v['haschild']) + foreach ($ruleList as $k => $v) { + if ($v['haschild']) { $hasChildrens[] = $v['id']; + } } foreach ($ruleList as $k => $v) { $state = array('selected' => in_array($v['id'], $selected) && !in_array($v['id'], $hasChildrens)); diff --git a/public/assets/js/backend/user/user.js b/public/assets/js/backend/user/user.js index 1ee1a74f..03e0aa7e 100644 --- a/public/assets/js/backend/user/user.js +++ b/public/assets/js/backend/user/user.js @@ -20,14 +20,19 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', - sortName: 'user.id', + sortName: 'id', fixedColumns: true, fixedRightNumber: 1, columns: [ [ {checkbox: true}, {field: 'id', title: __('Id'), sortable: true}, - {field: 'group.name', title: __('Group')}, + { + field: 'group_id', title: __('Group'), formatter: function (value, row, index) { + value = Fast.api.escape(row.group_name || ''); + return '' + value + ''; + } + }, {field: 'username', title: __('Username'), operate: 'LIKE'}, {field: 'nickname', title: __('Nickname'), operate: 'LIKE'}, {field: 'email', title: __('Email'), operate: 'LIKE'},