راکت

ذخیره در دیتابیس

11 پاسخ

سلام چیکار کنم 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"
      ]```
ثبت پرسش جدید

پاسخ‌ها

11
محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@wxyz
سلام.
خب مقدار رو بهش پاس بده

مهدی عقیقی
مهدی عقیقی
@MehdiAghighi

تخصص: برنامه نویس وب

سلام وقتتون بخیر.
چند تا کار می‌تونید بکنید.
یکیش اینه که با استفاده از relation ها کلا سیوش کنید.

$order->relations()->save($model)

اگر هم order_id مقدار نگرفت و خواستید دستی بدید باز هم مقدار نگرفت، حواستون باشه مقدار order_id رو بزارید توی متغیر $fillable مدلتون یا این که یک متغیر $gaurded درست کنید و مساوی با یک آرایه خالی بگذارید.

شاید پاسخ شما همین‌جا باشد

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

به چه شکل داده ها رو ذخیره میکنی؟

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@ali.bayat

   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', 'موفق');

    }
مهدی عقیقی
مهدی عقیقی
@MehdiAghighi

تخصص: برنامه نویس وب

@wxyz شما الان دقیقا کجا order_id رو پاس دادید !؟

$order = cart::where('order_id', '=', $order->id)->first();

الان این خط دقیقا $order رو از کجا میاره چون قبلش که تعریف نکردید !!!

اصلا به نظر من منطقیش اینه که شما توی cart نباید فیلدی به اسم order_id داشته باشید بلکه داخل order باید فیلدی داشته باشید به اسم cart_id !!
چون هر سبد خرید متعلق به یک سفارش هستش.
نمیشه که وقتی هنوز order رو نساختید orderid رو بدید به cart.

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@MehdiAghighi
این پروژه من ننوشتم بهم دادن به عنوان تست گفتن انجام بده
اطلاعات دیتابیس رو هم من نساختم الان فقط میخام order_id خونده بشه و نمیدونم چیکار کنم

مهدی عقیقی
مهدی عقیقی
@MehdiAghighi

تخصص: برنامه نویس وب

@wxyz ببینید شما می‌خواید قبل از این که order رو ساخته باشید، به cart یک order_id بدید که خب این خیلی غیر منطقیه.
شما در مورد رابطه‌ها توی دیتابیس مطالعه بکنید تا نحوه‌ی درست پیاده‌سازی رابطه رو اول متوجه بشید، بعد از اون توی مستندات لاراول بخش relations خیلی کامل توضیح داده که چجوری این رابطه‌ها رو در لاراول استفاده کنید.

به نظرم اینجوری زودتر به نتیجه می‌رسید.

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@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.
مهدی عقیقی
مهدی عقیقی
@MehdiAghighi

تخصص: برنامه نویس وب

من الان اصلا متوجه کد شما نمی‌شم خیلی زیاد توش اشتباه هست.

$cart = cart::findOrFail($order);

الان این خط دقیقا یعنی چی‌!
فانکشن findOrFail باید بهش یک primary key بدید.

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@MehdiAghighi
این کد رو من ننوشتم بهم دادن اصلاحش کنم
و کمک در همین زمینه میخام که دقیقا چیکار کنم تو دیتابیس ذخیره بشه

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

این مشکل حل شد تو دیتابیس ذخیره شد و مشکلی که هست تو order_id نمیخونه برای این چیکار باید کرد؟

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام