Laravel displaying/updating 来自 DB 的数据在仅查看状态下显示数据 "active" 和 "deactive" 按 $id 查找
Laravel displaying/updating data from DB show data in view only status "active" and "deactive" find by $id
我尝试了下面的代码,但它不起作用。
在此代码中,当我在浏览器中输入 "DELETED"、"id" 号码时 "URL" 它也显示 "DELETED" 状态用户详细信息,我只想显示和访问"ACTIVATE" AND "DEACTIVATE" users only if I entered "DELETED" Users "id" in "URL" 它应该显示错误:
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
}
}
我尝试了下面的代码,但它不起作用。
在此代码中,当我在浏览器中输入 "DELETED"、"id" 号码时 "URL" 它也显示 "DELETED" 状态用户详细信息,我只想显示和访问"ACTIVATE" AND "DEACTIVATE" users only if I entered "DELETED" Users "id" in "URL" 它应该显示错误:
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
}
}