我想知道如何检查当前用户是否有任何订单?如果显示列表,如果没有显示消息?
目前我正在使用此功能,但效果不佳:
@if (empty(Auth::user()->order))
<blockquote>
<h1>Sorry you have no order at the moment, would you like to check out our products?</h1>
<footer><a href="{{route('shop')}}">Click here</a></footer>
</blockquote>
@else
.......
@endif
用户模型:
public function order(){
return $this->hasMany(Order::class);
}
订单型号:
public function user(){
return $this->belongsTo(User::class);
}
显示订单历史记录视图的控制器:
public function index()
{
$user = Auth::user();
$orders = Order::where("user_id", "=", $user->id)->orderby('id', 'desc')->paginate(10);
return view('users.orders', compact('user', 'orders'));
}
答案 0 :(得分:1)
要实现这一目标,有一些先决条件:
如果您有此并假设您的关系设置为:
class User extends Model{
/**
* Get the orders for the user
*/
public function orders(){
return $this->hasMany('App\Order');
}
}
您可以使用forelse
刀片语法
@forelse (Auth::user()->orders as $order)
<li>{{ $order->title }}</li>
@empty
<blockquote>
<h1>Sorry you have no order at the moment, would you like to check out our products?</h1>
<footer><a href="{{route('shop')}}">Click here</a></footer>
</blockquote>
@endforelse
这将创建一个for
循环,您可以在其中声明订单的html布局。如果没有订单,则会使用empty
块。
答案 1 :(得分:-1)
您可以使用以下方式计算订单:
Auth::user()->orders->count()