Use*_*r57 4 php laravel laravel-5
我想检查刀片中是否存在变量..为此,我使用了以下几行:
@if(is_null($products))
<div class="alert alert-warning">
<strong>Sorry!</strong> No Product Found.
</div>
@else
@foreach($products as $product)
//
@endforeach
@endif
Run Code Online (Sandbox Code Playgroud)
问题是当$products
刀片上有时,我可以在foreach
循环内显示,但是当我得到空变量时。我无法显示消息,No Data Found
而是只显示空白空间?检查刀片内部的变量有什么问题吗?
控制器代码:
public function productSearch(Request $request)
{
$name = $request->name;
$products = Product::where('name' , 'like', '%'.$name.'%')->get();
return view('cart.product',compact('products'));
}
Run Code Online (Sandbox Code Playgroud)
我通常使用PHP count():
@if(count($products) < 1)
<div class="alert alert-warning">
<strong>Sorry!</strong> No Product Found.
</div>
@else
@foreach($products as $product)
//
@endforeach
@endif
Run Code Online (Sandbox Code Playgroud)
您还可以使用PHP empty() 进行检查,例如:
@if(!empty($products))
Run Code Online (Sandbox Code Playgroud)
从 Laravel 5.7 开始,你还可以这样做:
@empty(!$products)
<div class="alert alert-warning">
<strong>Sorry!</strong> No Product Found.
</div>
@endempty
Run Code Online (Sandbox Code Playgroud)
正如您在文档中看到的:
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
Run Code Online (Sandbox Code Playgroud)
此代码将允许您解析所有用户并显示他们的列表。如果$users
变量为空,则显示一个段落
所以对你来说:
@forelse ($products as $product)
//
@empty
<div class="alert alert-warning">
<strong>Sorry!</strong> No Product Found.
</div>
@endforelse
Run Code Online (Sandbox Code Playgroud)