【发布时间】:2017-08-15 05:47:16
【问题描述】:
我想知道如何查看当前用户是否有订单?如果有显示列表,如果没有显示消息?
目前我正在使用它,但效果不佳:
@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'));
}
【问题讨论】:
-
你能描述一下“它不能很好地工作”是什么意思吗?你的数据库的结构是什么?除此之外,从视图中访问模型是违反 MVC 原则的,请在控制器中设置一个布尔值,以指示是否存在顺序。
-
@DanielAlexandrov 我的意思是当用户没有订单时它会显示我的表格而不是显示文本(在我的代码中),我想使用
order表检查登录的用户 ID,如果登录的用户id 与订单表中的任何订单匹配 显示他/她的订单列表,否则显示 s(he) 没有任何订单的文本。 -
可以统计订单数:Auth::user()->orders->count()
-
@M1Ö 请将您的评论作为答案,以便我批准。谢谢。
标签: php laravel laravel-blade