Laravel 删除前检查是否有与省相关的用户?

Laravel 删除前检查是否有与省相关的用户?,laravel,Laravel,我有一个名为省的表,它与用户表有关 然后我有多个删除省,我需要在删除任何省之前检查是否有任何用户与省 我的多重代码: public function delulti(Request $request,Governorate $governorate) { // here my problem if($request->muti_delete->users()->count() > 0){ session()->flash('warn

我有一个名为
的表,它与
用户
表有关

然后我有多个删除
,我需要在删除任何
之前检查是否有任何
用户

我的多重代码:

public function delulti(Request $request,Governorate $governorate)
{
    // here my problem 
    if($request->muti_delete->users()->count() > 0){
        session()->flash('warning','There are some Users related with this governorate');
        return redirect(route('governorate.index'));
    }

    // here everything is good and works
    if(is_array($request->muti_delete)){
        Governorate::destroy($request->muti_delete);
    }else{
        Governorate::find($request->muti_delete)->delete();
    }
    session()->flash('success', 'Deleted Governorates Successfuly');
    return redirect(route('governorate.index'));
}
省政府模式中的关系:

public function users()
{
    return $this->hasMany('App\User');
}

$request->multi\u delete->users()->count()
的问题在于(我假设)
$request->multi\u delete
是一个ID数组。所以你不能在上面做
->users()

您可以使用
Governoate::其中('id',$request->muti_delete)
来获取实际的模型


您还可以使用
withCount()
返回用户计数

public function delulti(Request $request,Governorate $governorate)
{
    $governates = Governoate::whereIn('id', $request->muti_delete)
        ->withCount('users')
        ->get();

    foreach ($governates as $governate) {
       if ($governate->users_count > 0) {
          // user exists

          session()->flash('warning','There are some Users related with this governorate');
          return redirect(route('governorate.index'));
       }
    }

    // rest of your code
}

首先获取reslt:
$result=Governorate::withCount('users')->其中('Governorate\u id',$request->muti\u delete)->get()
然后获取计数,然后检查它是否工作?
$result[0]->users\u count
什么是“不工作”?答案不是复制/粘贴,而是给你一个如何让它自己工作的想法<代码>政府::其中('id',$request->muti_delete)->withCount('users')->get()返回什么?如果您的关系设置正确,它应该为集合中的每个governota模型返回“users\u count”。从那里,您可以检查是否有任何集合项具有用户计数。附言:我加了一个编辑,现在完全明白了!对不起,你的第一个答案不清楚:)是的。但是你能解释最后一件事吗(用户数是多少?)它来自于
->withCount('users')
-类似于返回“关系数”。看一看-