在简单的多对多关系上使用超级简单的 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”
我希望只退回含有鸡肉成分的产品。
有人能帮忙吗?
这应该相当简单,但我找不到任何这样的用例,而且文档非常混乱。
我有一个 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++ 中的 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 在每个循环中调用该函数..
不过网上的例子都有些混乱。
我是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)
我现在得到了,仍然没有工作.