小编pre*_*tch的帖子

如何在Golang中返回动态类型结构?

我正在使用Golang Revel进行一些网络项目,到目前为止我确实喜欢了12个项目.在所有这些中,由于返回类型,我有很多代码冗余.看看这两个功能:

func (c Helper) Brands() []*models.Brand{

    //do some select on rethinkdb and populate correct model
    var brands []*models.Brand
    rows.All(&brands)

    return brands

}

func (c Helper) BlogPosts() []*models.Post{

    //do some select on rethinkdb and populate correct model
    var posts []*models.Post
    rows.All(&posts)

    return posts

}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它们都返回相同类型的数据(类型结构).我的想法就是像这样传递字符串var:

func (c Helper) ReturnModels(modelName string) []*interface{} {

    //do rethinkdb select with modelName and return []*interface{} for modelName
}
Run Code Online (Sandbox Code Playgroud)

像这样我可以只有一个帮助器来返回数据类型,而不是为不同的模型反复做同样的事情,但是相同的数据类型.

我的问题是:

  1. 这有可能吗?
  2. 如果是,你可以指向正确的文档
  3. 如果没有,我会更乐意回复你的答案:)

go revel

18
推荐指数
1
解决办法
2万
查看次数

如何从SQLAlchemy中的多对多(辅助)表中删除记录?

我在从PostTag包含PostTag列的表中删除记录时遇到问题.这是我的关系表:

tags = db.Table('PostTag',
    db.Column('Tag', db.Integer, db.ForeignKey('Tag.Id')),
    db.Column('Post', db.Integer, db.ForeignKey('Post.Id'))
)
Run Code Online (Sandbox Code Playgroud)

tags = db.relationship(Tag, secondary=tags, backref=db.backref('Post', lazy='dynamic'))
Run Code Online (Sandbox Code Playgroud)

当我这样做:

from models.Post import Post

posts = Post.query.join(Post.tags).filter(Post.Id == id).all()
if(posts):
   return posts
return False
Run Code Online (Sandbox Code Playgroud)

然后

for posttag in post[0].tags:
    db.session.delete(posttag)
    db.session.flush()
Run Code Online (Sandbox Code Playgroud)

删除多对多关系的行,但也删除Tag表中的记录.

我只需要从PostTag表中删除某些条件的记录(Post=1例如)

我搜索了互联网,但我没有找到任何结论.我不需要在多对多关系上级联.

这是sql日志:

 297 Query  DELETE FROM `PostTag` WHERE `PostTag`.`Tag` = 14 AND `PostTag`.`Post` = 3
 297 Query  DELETE FROM `PostTag` WHERE `PostTag`.`Tag` = 14 AND `PostTag`.`Post` …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

11
推荐指数
2
解决办法
1万
查看次数

如何从symfony2中的事件监听器发送var来查看?

我试图从symfony2中的事件监听器发送var来查看,但我已经堆叠了.

1)这可能吗?

2)使用什么内核事件(kernel.view或kernel.request)?

3)最后如何发送一些var来查看?

我最好的猜测是,我必须从控制器延长返回,然后让控制器完成他的工作.

我需要发送一些对象(实体).

php symfony

10
推荐指数
1
解决办法
1万
查看次数

vuex 中 { dispatch, commit } 的类型是什么?

我有 vujes 打字稿项目,在 vuex 商店我得到了类似的东西:

async getUserProfile ({ dispatch, commit }: any) {}
Run Code Online (Sandbox Code Playgroud)

好吧,我不想要,any因为那很糟糕,而且您在编辑器中没有帮助/自动完成功能。我找到了这个import { Dispatch, Commit } from "vuex";但是如何将该信息传递给{ dispatch, commit }: any

javascript vue.js flowtype vuex vuejs2

6
推荐指数
3
解决办法
4791
查看次数

如何在嵌套属性上使用mapbox“case”表达式?

如何使用嵌套值来使用 case == 运算符?就像是:

this.map.setPaintProperty("somelayer", "fill-color",
        ["case",
          ["==", ["properties:some_prop"], someval],
          "#34c0dd",
          "#499bbc"]
Run Code Online (Sandbox Code Playgroud)

其中属性是字典:

properties = {
some_prop: 1,
some_prop2: 2,
// and so on
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过["properties.some_prop"],["properties"]["some_prop"]但效果并不好。

以及如何打印 mapbox 查询(例如 console.log 或其他内容)?

mapbox mapbox-gl mapbox-gl-js

4
推荐指数
1
解决办法
2820
查看次数

如何在golang中定义动态"类型结构"?

这是Playground链接https://play.golang.org/p/qMKxqrOcc2.问题类似于Playground上的问题.

假设我有条件,需要这样做:

if modelName == "a"{
    model = models.A
} 
else{
    model = models.B
}
Run Code Online (Sandbox Code Playgroud)

在那里AB一些型号:

type A struct{
    filed1 string
    field2 string
    //etc

}
Run Code Online (Sandbox Code Playgroud)

和模型B

type B struct{
    filed1 string
    field2 string
    //etc

}
Run Code Online (Sandbox Code Playgroud)

字段在AB有一些相同的字段,但大多数它们反映数据库表(文档),它们是相同的类型(类型结构).

当我在所有的面前说:

var model interface{}
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

type models.A is not an expression 
Run Code Online (Sandbox Code Playgroud)

如果你问为什么,我这样做是为了避免代码中的代码冗余.

问题类似于:如何在Golang中返回动态类型结构?

这是代码的更新:

b := c.mainHelper.GetModelBy("id", id, modelName).(map[string]interface{})
mapstructure.Decode(b, &model)

if modelName == "a"{
    model.Photos = []string{"ph1","ph2"}
}
if modelName …
Run Code Online (Sandbox Code Playgroud)

go

1
推荐指数
1
解决办法
1万
查看次数

为什么我在 kubernetes 集群中看不到任何具有 master 或 worker 角色的节点?

我在一台机器上执行了 kubeadm init 。我按照网络等上的所有说明进行操作,最终得到以下结果:

kubectl get nodes

NAME              STATUS   ROLES           AGE    VERSION
slchvdvcybld001   Ready    control-plane   140m   v1.24.2
slchvdvcydtb001   Ready    <none>          136m   v1.24.2
slchvdvcytst001   Ready    <none>          137m   v1.24.2
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,没有节点是 Master 或 Worker 或类似的节点。

我没有任何特殊的设置,我所做的就是安装它并进行初始化。

日志文件中没有错误。仪表板是绿色的,所有东西都是绿色的。

这些是 kubectl 等的版本:

Client Version: v1.24.2
Kustomize Version: v4.5.4
Server Version: v1.24.2
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress nginx-ingress

1
推荐指数
1
解决办法
3179
查看次数