我正在学习Laravel
,我有一个不明白的问题。
我正在使用查询生成器来运行自己的查询,但我真的不知道在没有记录时如何返回错误消息:
public function store()
{
$item = request()->validate([
'item' => 'required|min:6|max:10'
]);
$details = DB::connection('sqlsrv')->table('TABLENAME')->where('ITEMID', '=', $item )->get();
return view('itemdetails.create', compact('details'));
}
因此,如果$details
null
我需要返回消息该怎么做?类似于raw
PHP
if(empty($details))
{
throw new Exception('My text')
}
或者签入blade
文件:
@if (count($details) != 1)
I don't have a record!
@endif
我试过firstOrFail
但看起来这不起作用。
还有其他方法(最佳方法(吗?
在控制器中
$validator = Validator::make($request->all(), [
'item' => 'required|min:6|max:10'
]);
$details = DB::connection('sqlsrv')->table('TABLENAME')->where('ITEMID', '=', $item )->get();
if (!$details) {
$validator->errors()->add('item', 'Item not found');
}
if ($validator->fails()) {
return redirect()
->back()
->withErrors($validator)
->withInput();
}
return view('itemdetails.create', compact('details'));
}
并在视图文件中
{{$validator->errors()->first('item')}}
如果条件对控制器有效,则只需使用正常
if($details) //True
{
//Redirect to..
}else
{
//Redirect to.. //False
}
对于刀片,您可以使用@if(count($details))
如果为 true,则会显示信息@else {{No data}} @endif