我想在 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
        ]);

    });
}