Список заказов не отображается должным образом в laravel api

Я начинающий пользователь Laravel. Я занимаюсь управлением складом в Laravel. Я хочу связать отношения со многими ко многим и одним ко многим. Когда я просматриваю данные, я сталкиваюсь с этой строкой. Я не знаю, как получить сведения о заказе продукта. Правильно ли это? Мне нужно получить количество в заказе продукта. Может ли кто-нибудь помочь мне завершить функцию индекса загрузки контроллера заказа. Таблица клиента, таблица заказов и заказ продукта. Как просмотреть данные в формате JSON:

Вот полный code: Вот code продукта, клиента, заказа и продукта заказа. Мне нужно, чтобы вы исправили часть API заказа, индекс и функцию хранилища внутри контроллера заказа:

клиент

продукт

заказ

ProductOrder

Вот контроллер заказа

 foreach ($order->products as $product) 
            {
                $arrayobj['order_products'][] = [
                    'product_id' => $product->id,
                    'product_name' => $product->name, 
                    

                ];

            }
class Client extends Model
{
    use HasFactory;

    protected $primary_key = "id";
    protected $table = "clients";
    protected $fillable = [
        'name',
        'email',
        'phone',
        'address',
    ];

    public function orders()
    {
        return $this->hasMany(Order::class);
    }
}
class Product extends Model
{
    use HasFactory;
    protected $primary_key = "id";
    protected $table = "products";

    protected $fillable = [
        'product_code',
        'product_name',
        'stock_level',
        'price',
        'category_id',
    ];

    public function category()
    {
        return $this->belongsTo(Category::class, 'category_id');
    }

    public function orders()
    {
        return $this->belongsToMany(Order::class, 'product_orders');
    }
class Order extends Model
{
    use HasFactory;

    protected $primary_key = "id";
    protected $table = "orders";


    protected $fillable = [
        'order_number',
        'total',
        'client_id',  
    ];



    public function client()
    {
        return $this->belongsTo(Client::class);
    }

    public function products()
    {
        return $this->belongsToMany(Product::class, 'product_orders');
    }

}
class ProductOrder extends Model
{
    use HasFactory;
    protected $primary_key = "id";
    protected $table = "product_orders";

    protected $fillable = [
        'product_id',
        'order_id',
        'qty',
    ];
}
// retrieve data from clinet
public function index()
{

    $orders = Order::with(['client', 'products'])->get();

    // create empty array
    $response_array = [];

    // loop orders

    foreach ($orders as $order) 
        {
                $arrayobj = [
                    'order_number' => $order->order_number,
                    'client_id' => $order->client_id,
                    'total' => $order->total,
                    'order_products' => []
                ];

    foreach ($order->products as $product) 
        {
            $arrayobj['order_products'][] = [
                'product_id' => $product->id,
                'product_name' => $product->name, 
            ];

        }


        // array_push()
    }

    return    $response_array;
}
Евпраксия
Вопрос задан25 июля 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.