我试图让用户能够查看他的订单。我怎样才能查询数据库..我尝试这样的东西,但我得到了空页...我的意思是数据库。可能是我的查询不正确。
这是我的控制器
public function viewOrders() {
$user_order = self::$user->user_id;
$orders = Order::where('user_id', '=', $user_order);
return View::make('site.users.orders', [
'orders' => $orders
]);
}
我在这里得到了正确的user_id吗?我不确定......
更新:我的用户模型中有这个
public function orders() {
return $this->hasMany('Order', 'user_id', 'user_id');
}
答案 0 :(得分:1)
如果您已正确设置Authentication,则可以执行以下操作。
public function viewOrders(){
$user = Auth::user();
return view('site.users.orders',[
'orders' => $user->orders
]);
}
当您在不使用调用括号的情况下使用关系时,您将获得一组模型,如果它们尚未加载则会被查询。这称为延迟加载,如果要在访问之前加载关系,可以使用eager loading。在这种情况下,虽然没有必要。
答案 1 :(得分:1)
好的,所以基于你的路线+按钮+模型就像这样做
$orders = self::$user->orders()->orderBy('order_id', 'asc')->get();
return View::make('site.users.orders', [
'orders' => $orders
]);
这应该有用..如果你不需要,可以删除orderBy子句。