国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman-admin普通管理員添加數(shù)據(jù)無法自動生成admin_id

漫步者321

問題描述

webman-admin普通管理員添加限制為auth數(shù)據(jù)時無法自動生成admin_id,看Crud.php中代碼好像必須要前臺傳admin_id參數(shù)過來,不能自動獲取當前管理員ID.

程序代碼或配置

/**
     * 插入前置方法
     * @param Request $request
     * @return array
     * @throws BusinessException
     */
    protected function insertInput(Request $request): array
    {
        $data = $this->inputFilter($request->post());
        $password_filed = 'password';
        if (isset($data[$password_filed])) {
            $data[$password_filed] = Util::passwordHash($data[$password_filed]);
        }

        if (!Auth::isSuperAdmin()) {
            if ($this->dataLimit === 'personal') {
                $data[$this->dataLimitField] = admin_id();
            } elseif ($this->dataLimit === 'auth') {
                if (!empty($data[$this->dataLimitField])) {
                    $admin_id = $data[$this->dataLimitField];
                    if (!in_array($admin_id, Auth::getScopeAdminIds(true))) {
                        throw new BusinessException('無數(shù)據(jù)權(quán)限');
                    }
                }
            }
        } elseif ($this->dataLimit && empty($data[$this->dataLimitField])) {
            $data[$this->dataLimitField] = admin_id();
        }
        return $data;
    }

重現(xiàn)問題的步驟

1、添加普通管理員
2、普通管理員登錄添加限制為auth的數(shù)據(jù)提示缺少admin_id

操作系統(tǒng)環(huán)境及workerman/webman等具體版本

windows10 Workerman version:4.1.15

790 1 1
1個回答

walkor 打賞

發(fā)下報錯,報錯發(fā)全

  • 漫步者321 2024-06-05

    SQLSTATE[HY000]: General error: 1364 Field 'admin_id' doesn't have a default value (SQL: insert into wa_cars (plate, carmodel, carseries, driver_id, review, insure, mileage, status, updated_at, created_at) values (ddd, z5s, benchi, 5, ?, ?, ?, 0, 2024-06-05 14:01:43, 2024-06-05 14:01:43))

  • walkor 2024-06-05

    SQL報錯的意思是向 wa_cars 表寫入數(shù)據(jù)的時候沒傳 admin_id,傳下admin_id就好了。和權(quán)限是不是auth沒有關(guān)系

  • 漫步者321 2024-06-05

    admin_id不是應該自動生成嗎,你看代碼中如果是超級管理員就會自動生成,為什么普通管理員就不行?這是基于什么考慮嗎

  • 漫步者321 2024-06-05

    if (!Auth::isSuperAdmin()) {
    if ($this->dataLimit === 'personal') {
    $data[$this->dataLimitField] = admin_id(); //personal權(quán)限會自動生成admin_id參數(shù)
    } elseif ($this->dataLimit === 'auth') { //為什么auth權(quán)限就不能自動生成admin_id參數(shù)而必須要手動傳這個參數(shù)?
    if (!empty($data[$this->dataLimitField])) {
    $admin_id = $data[$this->dataLimitField];
    if (!in_array($admin_id, Auth::getScopeAdminIds(true))) {
    throw new BusinessException('無數(shù)據(jù)權(quán)限');
    }
    }
    }
    } elseif ($this->dataLimit && empty($data[$this->dataLimitField])) {
    $data[$this->dataLimitField] = admin_id();//超級管理員權(quán)限會自動生成admin_id參數(shù)
    }

  • walkor 2024-06-05
    if (!empty($data[$this->dataLimitField])) {
                        $admin_id = $data[$this->dataLimitField];
                        if (!in_array($admin_id, Auth::getScopeAdminIds(true))) {
                            throw new BusinessException('無數(shù)據(jù)權(quán)限');
                        }
                    } else {
                        $data[$this->dataLimitField] = admin_id();
                    }

    改成這樣試下

年代過于久遠,無法發(fā)表回答
??