模型文件中的方法怎么在菜单管理规则中生效

在app\admin\model\User.php模型中有如下代码

language 复制代码
public static function cleanXss($model): void
    {
        // 检查 group_id 是否被修改且新值不等于1
        if ($model->getOrigin('group_id')===1 && $model->group_id != 1) {
            $model->updateUserGroupDel();
        }
    }

    /**
     * 会员管理修改其他分组后,立即删除中间表关联记录
     */
    protected function updateUserGroupDel()
    {
        // 删除中间表关联的记录
        Db::name('bloguser')
            ->where('user_id', $this->id)
            ->delete();
    }

添加菜单管理规则 user/user/updateUserGroupDel (更新分组删除博客关联)后,因为方法在模型文件,而不是在控制器中,所以不能生效,要怎么才能实现这种规则呢?

3个回答默认排序 投票数排序
YANG001
YANG001
这家伙很懒,什么也没写~
1周前

控制器新建 updateUserGroupDel 方法,其中调用模型的 updateUserGroupDel 方法

siccd
siccd
这家伙很懒,什么也没写~
1周前

user控制器中:

language 复制代码
/**
     * 编辑
     * @throws Throwable
     */
    public function edit(): void
    {
        $pk  = $this->model->getPk();
        $id  = $this->request->param($pk);
        $row = $this->model->find($id);
        if (!$row) {
            $this->error(__('Record not found'));
        }

        if ($this->request->isPost()) {
            $password = $this->request->post('password', '');
            if ($password) {
                $this->model->resetPassword($id, $password);
            }
            
            $this->updateUserGroupDel();

            parent::edit();

        }
        unset($row->salt);
        $row->password = '';
        $this->success('', [
            'row' => $row
        ]);
    }
    public function updateUserGroupDel(): void
    {
        $pk  = $this->model->getPk();
        $id  = $this->request->param($pk);
        $row = $this->model->find($id);
            $this->model->updateUserGroupDel($row['id']);
    }

user模型中:

language 复制代码
public function updateUserGroupDel($id)
    {
        // 删除中间表关联的记录
        Db::name('bloguser')
            ->where('user_id', $id)
            ->delete();
    }

因为我需要在更新用户信息的时候,自动执行updateUserGroupDel。所以在edit中加了自动执行,就算是这样,且已添加菜单管理规则 user/user/updateUserGroupDel (更新分组删除博客关联),整个流程基本符合要求,虽然能删除相应的数据,但同样还不能记录更新分组删除博客关联日志呢。

神秀
神秀
这家伙很懒,什么也没写~
10小时前

****youyong

请先登录
0
1
0
3