如何检查另一个 table 中是否存在主键值?

How can I check if a primary key value exists in another table or not?

我在多个 table 中有 country 的 ID(主键),我想检查它的值是否存在于另一个引用的 table.[=13= 中]

尝试使用以下代码,但我认为这不是正确的方法。任何人都可以提出一些建议...

public function check($id)
{
    $state = State::pluck('country_id');
    $country = DB::select("select count(*) from country where ? not in (?)",[$id,$state]);

    if($country == 0)
    {
        //
    }
    else{
        //
    }
}

这里使用Exists方法

public function check($id)
{
    $state = State::pluck('country_id');
    $country = DB::table('country') //table set
       ->whereIn('column_name',$state) //if array then used whereIn method
       ->where('column_name',$id) //if single value use where method
       ->exists();         

    if($country)
    {
        //
    }
    else{
        //
    }
}

您可以使用 exists.

检查记录的关系是否存在(或存在)

假设您在 Country 模型上有一个名为 states 的关系:

public function states
{
  return $this->hasMany(State::class);
}

您可以检查 Country 在您的数据库中是否有任何 States 与之相关。

// returns true if there are related states, otherwise false
Country::first()->states()->exists();

您可以使用任何您想要的过滤条件,因此您可以使用 find($id)where('field', $value) 等而不是 first()