防止在相同ID的项目之间重复,但可以在不同ID之间重复

时间:2019-08-28 02:10:24

标签: php laravel

这对我来说很难解决。我想防止数据库中相同ID的项目之间出现重复。但是可以在不同的ID之间重复。

例如,当抓取机器人运行时。它抓取一个网站。从不同页面获取“计划名称”。有时,不同的页面具有相同的计划名称。这意味着对于不同的ID可以进行复制。但不是同一页面的项目(我的意思是相同的ID)

下面的代码块。它可以防止所有重复。我不确定如何改善它。

foreach($planNames as $k => $names)
{
    $database = [];
    $database = [
        "place_id" => $insertedPlaceId,
        "plan_name" => $names,
        "plan_price" => $planPrice[$k],
        "people" => $people[$k]
    ];


    if ($place = Plan::where("plan_name", "=", $names)->first()) {

    } else {
        Plan::insertGetId($database);
        $this->line("Plans inserted.");
    }
}

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么您想在同一plan_name中阻止相同的place_id,因此您应该对此进行查询

$place = Plan::where("plan_name", "=", $names)->where("place_id", $insertedPlaceId)->first();

然后检查其是否为空。

希望有帮助。如果我对您的问题的理解是错误的,请指正。谢谢