مستندات لاراول ظاهرا تریگر رو نداره .

اگه فرض کنیم فقط فروش از طریق سایت هست اینطور درنظر میگیریم که وقتی دو سفارش همزمان در جدول بخواد درج بشه ، تریگر اجرا میشه .

دو تا کلی نوشتم به لحاظ مفهومی ( نه سینتکسی درسته ؟ )

گفتم وقتی ردیفی در جدول order_product درج شد جدول انبار داری یک سطر بهش اضافه بشه.
و در تریگر دوم گفتم وقتی به جدول انبارداری یک سطر اضافه شد ، موجودی در جدول محصولات ویرایش بشه.

سوال : باید بگم وقتی یک سطر به order اضافه شد یا به order_product ؟ هر order میتونه چندتا order_product داشته باشه


public function up()
{
DB::unprepared('CREATE TRIGGER trigger_product_stocks AFTER INSERT ON `order_product` FOR EACH ROW
BEGIN
INSERT INTO `product_stocks` (`id`, `product_id`, `quantity`, `typet`) VALUES (3, order_product->id, order_product->quantity, out);
END');
}

public function up()
{
DB::unprepared('CREATE TRIGGER trigger_product_quantity AFTER INSERT ON `product_stocks` FOR EACH ROW
BEGIN
UPDATE `product`
SET quantity=quantity - product_stocks->quantity
WHERE id = product_stocks->id;
END');
}





اینهم تصویری از جداول من غیر از جدول انبار داری product_stocks

p.jpg