Laravel显示/更新数据库中的数据仅显示$id查找的视图状态为“活动”和“非活动”状态



我尝试了下面的代码,但它不起作用。

在此代码中,当我在浏览器"URL"中输入"已删除","id"号时,它还显示"已删除"状态用户详细信息,我只想显示和访问"激活"和"停用"用户

,如果我在"URL"中输入"已删除"用户"id",它应该显示错误:

public function staff_status($id)
{
    $user = User::where('status', '=', 'ACTIVATE')->orWhere('status', '=', 'DEACTIVATE')->find($id);
    return view('home', compact('user'));
}
public function status_update(Request $request, $id)
{
    $user = User::where('status', '=', 'ACTIVATE') > orWhere('status', '=', 'DEACTIVATE')->find($id);
    $user['status'] = $request->status;
    $user->save();
    return back()->with('success', 'SUBMITED SUCCESSFULLY .');
}

正如@Chay22提到的,你应该添加另一个 where 条件

只需用这个替换你的代码

public function staff_status($id)
{
    $user = User::where('status', '!=', 'DELETED')
                  ->where(function($query){
                      $query->where('status','=','ACTIVATE');
                      $query->orWhere('status','=','DEACTIVATE');
                  })->find($id);
    if (! $user) {
        return // return your error here
    }
    return view('home',compact('user'));
}
public function status_update(Request $request, $id)
{
    $user = User::where('status', '!=', 'DELETED')
                  ->where(function($query){
                      $query->where('status','=','ACTIVATE');
                      $query->orWhere('status','=','DEACTIVATE');
                  })->find($id);
    if ($user) {
        $user->status = $request->status;
        $user->save();
        return back()->with('success','SUBMITED SUCCESSFULLY .');
    } else {
        return // return your error here
    }
}

相关内容

最新更新