小编Chr*_*s G的帖子

使用 GORM 过滤具有 has_many 关系的查询?

在简单的多对多关系上使用超级简单的 Gorm 查询时遇到问题,我在 MYSQL 数据库中有 3 个表,建模如下:

type Product struct {
    ID          uint         `gorm:"unique"  json:"id"`
    Name        string       `gorm:"name"  json:"name"`
    Ingredients []Ingredient `gorm:"many2many:product_ingredients;"  json:"ingredients"`
}

type Ingredient struct {
    ID   uint   `gorm:"unique" json:"id"`
    Name string `gorm:"name" json:"name"`
}
Run Code Online (Sandbox Code Playgroud)

(和一个连接表)

我想要一个查询来获取特定产品中包含该成分的所有产品:

我可以得到所有数据的一般查询:

db.Debug().Preload("Ingredients").Limit(limit).Offset(offset).Find(&products)
Run Code Online (Sandbox Code Playgroud)

但尝试做这样的事情

db.Debug().Preload("Ingredients").Limit(limit).Offset(offset).Where(Ingredient{Name: "Chicken"}).Find(&products)
Run Code Online (Sandbox Code Playgroud)

给我错误 1054:“where 子句”中的未知列“ingredients.name”

我希望只退回含有鸡肉成分的产品。

有人能帮忙吗?

这应该相当简单,但我找不到任何这样的用例,而且文档非常混乱。

go go-gorm

5
推荐指数
0
解决办法
675
查看次数

创建一个方法来迭代带有模板的自定义类的任何容器?

我有一个 Animal 抽象类,其中我创建了像 Dog、Cat、Hamster 等子类。

我已经创建了一个方法来遍历一系列动物对象并在每个对象上调用“描述”方法。Describe 是一个纯虚函数,已在子类中实现。

我正在尝试创建一种方法来遍历任何动物容器并执行相同的操作。

这是我到目前为止所拥有的:

template <typename Container>
void describe_all(Container &c) {
typedef typename Container::iterator Iter;

for (Iter p = c.begin(); p != c.end(); ++p)


}
Run Code Online (Sandbox Code Playgroud)

我的脑子在这里一片空白,我不确定如何合并动物类。我对 C++ 还是很陌生!

c++ generics templates iterator

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

在 for_each lambda 中调用对象函数?

我正在尝试掌握 C++ 中的 lambdas。

这是我的代码(为了理解而简化了变量):

template <typename Container>
void do_function(const Container& c, const item &w){

complex<double> a(w.x1, w.y1);
complex<double> b(w.x3, w.y3);

for_each(begin(c), end(c), [] {
    p->inner_function(a, b);
});
}
Run Code Online (Sandbox Code Playgroud)

我知道 p 没有任何意义,它只是为了说明我想做什么。

本质上,我想在任何类型的容器(列表/向量等)上使用这个函数,这些容器包含一个名为 Animal 的抽象类的指针实例。这些实例都有一个“inner_function(complex, complex)”的实现。

我想在 for_each 循环中使用 C++ 11 中的 lambdas 在每个循环中调用该函数..

不过网上的例子都有些混乱。

c++ foreach lambda c++11

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

Mailto使用Javascript?

我是javascript的新手,以下代码无效:

<script>
function sendMail()
{
    var yourMessage = document.getElementById("message").value
    var subject = document.getElementById("selectList").value
    var mail="mailto:chrisgreg23@googlemail.com?subject="+subject+"&body="+yourMessage;

    window = window.open(mail, 'emailWindow')
}
</script>
Run Code Online (Sandbox Code Playgroud)

我只想要一个邮件客户端窗口打开,主题和正文已经完成.

救命?

编辑:

我也试过这个:

<script>
function sendMail()
{
    var yourMessage = document.getElementById("message").value
    var subject = document.getElementById("selectList").value
    var mail="mailto:chrisgreg23@googlemail.com?subject="+subject+"&body="+yourMessage;

    $(this).attr('href', mail);
}
</script>
Run Code Online (Sandbox Code Playgroud)

我现在得到了,仍然没有工作.

javascript mailto html5

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

标签 统计

c++ ×2

c++11 ×1

foreach ×1

generics ×1

go ×1

go-gorm ×1

html5 ×1

iterator ×1

javascript ×1

lambda ×1

mailto ×1

templates ×1