Как отображать заказы в учетной записи пользователя Laravel - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь отобразить заказы покупателя и сведения о продукте, такие как имя, цена, общая сумма и т. Д. После входа в систему покупатель должен видеть историю его заказов и заказанный им продукт.До сих пор, когда я получаю dd ($ orders), я получаю детали заказа, но не детали продукта, это то, что я получаю -> (https://imgur.com/a/kH0Lara). Так, как мне получить детали продукта тоже.

Вот моймодели и функции

Функция покупателя

 public function myOrders()
 { 
 $orders = auth()->user()->allOrderFromBuyers()->with('orders')->get();
dd($orders);
return view('myOrders')->with(compact('orders'));

  }  

User.php

   public function products()
  {
  return $this->hasMany(Products_model::class);
  }

   public function orders()
  {
   return $this->hasMany(Order::class, Products_model::class, 'buyer_id', 'seller_id', 'product_id');
   }

   public function allOrderFromBuyers()
   {
    return $this->hasMany(OrderProduct::class, 'buyer_id');
    }

Oder.php

   public function user()
   {
    return $this->belongsTo('App\User');
   }

   public function products()
   {
    return $this->belongsToMany(Products_model::class, 'order_product');//gggg
   }

 public function orders(){
     return $this->hasMany('App\OrderProduct', 'order_id');
 }

Products_model.php

  protected $fillable= ['seller_id','pro_name','pro_price','pro_info','image','stock','category_id'];

 public function orders() 
 {
  return $this->belongsToMany('App\Order', 'order_product');
 }

OrderProduct.php

  public function products()
  {
  return $this->belongsTo('App\Products_model');
  }

public function buyer()
{
    return $this->belongsTo(User::class, 'id', 'buyer_id');
}

public function orders()
{
  return $this->belongsTo(Order::class);
 }

Я старался изо всех сил, но застрял, любая помощь будет оценена.

1 Ответ

0 голосов
/ 19 июня 2019

То, как вы определили свои отношения, очень запутанно, но вот что я подобрал: Вы сделали это:

 $orders = auth()->user()->allOrderFromBuyers()->with('orders')->get()

Вы пытаетесь получить все заказы от покупателей, когдаваши отношения не определены должным образом ..

Сначала давайте очистим ваши отношения в вашем Order.php

 public function orders(){
 return $this->hasMany('App\OrderProduct', 'order_id');

}

должно быть:

 public function orderDetails(){
     return $this->hasMany('App\OrderProduct', 'order_id');
 }

Тогда вы можете сделать:

auth()->user()->orders()->with('orderDetails')->get()

Или вы можете лениво это:

auth()->user()->orders()->load('orderDetails');

Я также отметилошибка в вашем пользователе Модель, пожалуйста, исправьте ее, вы не можете иметь 2 Модели в одном отношении, никогда не работает.

public function orders()
  {
   return $this->hasMany(Order::class);
   }

Дайте мне знать, как это происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...