سلام چیکار کنم order_id تو دیتابیس ذخیره بشه؟
#attributes: array:12 [▼
"id" => 66
"product_id" => 26
"order_id" => null
"user_seller" => 6
"user_buyer" => 6
"fee" => "560000.00"
"quantity" => 1
"totalprice" => "560000.00"
"image" => "soghati1594561183.jpg"
"name" => "دستبند طلا"
"created_at" => "2020-07-25 09:00:06"
"updated_at" => "2020-07-25 09:00:06"
]```
سلام وقتتون بخیر.
چند تا کار میتونید بکنید.
یکیش اینه که با استفاده از relation ها کلا سیوش کنید.
$order->relations()->save($model)
اگر هم order_id
مقدار نگرفت و خواستید دستی بدید باز هم مقدار نگرفت، حواستون باشه مقدار order_id
رو بزارید توی متغیر $fillable
مدلتون یا این که یک متغیر $gaurded
درست کنید و مساوی با یک آرایه خالی بگذارید.
public function addToCart(Request $request, $id)
{
$product = Userproduct::findOrFail($id);
$cart = new cart();
$cart->product_id = $product->id;
$cart->user_seller = $product->user_id;
$cart->user_buyer = auth()->id();
if ($product->priceoff != null || $product->priceoff != 0) {
$cart->fee = $product->priceoff;
$cart->totalprice = $product->priceoff;
} else {
$cart->fee = $product->price;
$cart->totalprice = $product->price ;
}
$cart->image = $product->image;
$cart->name = $product->name;
$cart->quantity = $request->quantity;
$cartp = cart::where('product_id', '=', $product->id)->first();
if ($cartp === null)
{
$cart->save();
return redirect('/profile/cart')->with('message', 'محصول با موفقیت به سبد خرید اضافه شد');
}
و
public function checkout(Request $request, order $order)
{
$cart = cart::all();
// $order = cart::where('order_id', '=', $order->id)->first();
// $cart = cart::find($order);
dd($cart);
// $order = new order();
// $order->user_seller = 'user_seller';
// $order->user_buyer = 'user_buyer';
// $order->totalprice = 'user_buyer';
// $order->quantity = 'user_buyer';
// $order->shipmentstat = 0;
// $order->paymentstat = 0;
// $order->desc = '';
// $order->save();
// return redirect('profile.cart.checkout')->with('message', 'موفق');
}
@wxyz شما الان دقیقا کجا order_id
رو پاس دادید !؟
$order = cart::where('order_id', '=', $order->id)->first();
الان این خط دقیقا $order
رو از کجا میاره چون قبلش که تعریف نکردید !!!
اصلا به نظر من منطقیش اینه که شما توی cart نباید فیلدی به اسم order_id
داشته باشید بلکه داخل order باید فیلدی داشته باشید به اسم cart_id
!!
چون هر سبد خرید متعلق به یک سفارش هستش.
نمیشه که وقتی هنوز order رو نساختید orderid رو بدید به cart.
@MehdiAghighi
این پروژه من ننوشتم بهم دادن به عنوان تست گفتن انجام بده
اطلاعات دیتابیس رو هم من نساختم الان فقط میخام order_id خونده بشه و نمیدونم چیکار کنم
@wxyz ببینید شما میخواید قبل از این که order
رو ساخته باشید، به cart یک order_id بدید که خب این خیلی غیر منطقیه.
شما در مورد رابطهها توی دیتابیس مطالعه بکنید تا نحوهی درست پیادهسازی رابطه رو اول متوجه بشید، بعد از اون توی مستندات لاراول بخش relations خیلی کامل توضیح داده که چجوری این رابطهها رو در لاراول استفاده کنید.
به نظرم اینجوری زودتر به نتیجه میرسید.
@MehdiAghighi
خب برای جدول order چیکار باید انجام بدم در این زمینه میشه راهنمایی کنید
public function checkout(Request $request,order $order)
{
$cart = cart::findOrFail($order);
$order = new order();
$order->user_seller = $cart->user_seller;
$order->user_buyer = $cart->user_buyer;
$order->totalprice = $cart->totalprice;
$order->quantity = $cart->quantity;
$order->shipmentstat = 0;
$order->paymentstat = 0;
$order->desc = '';
$order->save();
return redirect('/profile/cart')->with('message', 'موفق');
اروری که میده
Property [user_seller] does not exist on this collection instance.
من الان اصلا متوجه کد شما نمیشم خیلی زیاد توش اشتباه هست.
$cart = cart::findOrFail($order);
الان این خط دقیقا یعنی چی!
فانکشن findOrFail باید بهش یک primary key بدید.
@MehdiAghighi
این کد رو من ننوشتم بهم دادن اصلاحش کنم
و کمک در همین زمینه میخام که دقیقا چیکار کنم تو دیتابیس ذخیره بشه
این مشکل حل شد تو دیتابیس ذخیره شد و مشکلی که هست تو order_id نمیخونه برای این چیکار باید کرد؟
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟