Я начинающий пользователь 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;
}