我想在 Laravel 中创建一个功能
I want to create a functionality in Laravel
我想在 Laravel 上创建一个功能,用于检查数据库 table 的行是否存在。检查后,根据检查结果,删除、添加新列或跳过它们。
foreach($this->category_product as $k => $item) {
$category_product = CategoryProduct::where([['category_id', $this->category_id],['product_id', $k]])->firstOr(function () {
$category_product = CategoryProduct::create([
'category_id' => $this->category_id,
'product_id' => $k
]);
});
}
这是我目前所拥有的。如何删除查询中不存在的行?
任何帮助,将不胜感激。
谢谢
我希望我没听错,因为问题还不够清楚,但如果行存在,这里有一种删除行的方法:
注意:你错过了use ($k)
foreach ($this->category_product as $k => $item) {
$category_product = CategoryProduct::where([
['category_id', $this->category_id],
['product_id', $k]
])->firstOr(function () use ($k) {
// Delete if it exists.
CategoryProduct::where([
'category_id' => $this->category_id,
'product_id' => $k
])->delete();
// Create if it doesn't exist.
$category_product = CategoryProduct::create([
'category_id' => $this->category_id,
'product_id' => $k
]);
});
}
我想在 Laravel 上创建一个功能,用于检查数据库 table 的行是否存在。检查后,根据检查结果,删除、添加新列或跳过它们。
foreach($this->category_product as $k => $item) {
$category_product = CategoryProduct::where([['category_id', $this->category_id],['product_id', $k]])->firstOr(function () {
$category_product = CategoryProduct::create([
'category_id' => $this->category_id,
'product_id' => $k
]);
});
}
这是我目前所拥有的。如何删除查询中不存在的行? 任何帮助,将不胜感激。 谢谢
我希望我没听错,因为问题还不够清楚,但如果行存在,这里有一种删除行的方法:
注意:你错过了use ($k)
foreach ($this->category_product as $k => $item) {
$category_product = CategoryProduct::where([
['category_id', $this->category_id],
['product_id', $k]
])->firstOr(function () use ($k) {
// Delete if it exists.
CategoryProduct::where([
'category_id' => $this->category_id,
'product_id' => $k
])->delete();
// Create if it doesn't exist.
$category_product = CategoryProduct::create([
'category_id' => $this->category_id,
'product_id' => $k
]);
});
}