laravel 对 数据库 json 字段的查询方式汇总

1: 查询json字段, 多层级

laravel 对 数据库 json 字段的查询方式汇总_第1张图片

    public static function formRoleDelCheck($params)
    {
        $user = Auth::user();

        $check = WorkorderSet::whereRaw(
            'JSON_CONTAINS(auto_assign_rule, ?)',
            [
                json_encode([
                    'rules' => [
                        ['type' => 'field', 'field_key' => "field_{$params['field_id']}"]
                    ]
                ])]
        )->exists();

        return responseData([
            'is_exist' => $check
        ]);
    }

2: 单层级查询

    public static function roleDelCheck($params)
    {
        $user  = Auth::user();
        $check = CustomField::query()->where([
            'company_id'             => $user['company_id'],
            'field_form'             => 'workorders',
            'field_type'             => 'workorder_role',
            'extend->relate_role_id' => $params['role_id']	// json字段, 单层级
        ])->exists();
        return responseData([
            'role_id'  => $params['role_id'],
            'is_exist' => $check,
        ]);
    }

你可能感兴趣的:(laravel,数据库,json)