چگونه کاربری که ثبت نام کرده یک بار سفارش را انتخاب کنه

- 3 هفته پیش
توسط محمود خسروی آپدیت شد
محمود خسروی ( 2819 تجربه )
3 هفته پیش

کاربر میاد تو سایت ثبت نام میکنه که میخواد سفارش را انتخاب کنه فقط کاربر بتونه یک بار سفارش را انتخاب کنه.

دو بار اگر زد پیغام بده که شما قبلا این سفارش را به ثبت رساندی.

public function up()
{
    Schema::create('orders', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->bigInteger('category_id')->unsigned();
        $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
        $table->bigInteger('user_id')->unsigned();
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        $table->bigInteger('computer_id')->unsigned()->nullable();
        $table->foreign('computer_id')->references('id')->on('computers')->onDelete('cascade');
        $table->boolean('status')->nullable();
        $table->timestamps();
    });
}

User.php

public function checkOrder($category)
{
    return !! Order::where('user_id' , $this->id)->where('category_id' , $category->id)->first();
}

OrderControllrt.php

public function store(Request $request)
{
    $this->validate(request(), [
        'category_id' => 'required'
    ]);

    $order = Order::findOrFail(request('category_id'));

    if(auth()->user()->checkOrder($order)) {
        alert()->error('شما قبلا این سفارش را انجام داده اید.','دقت کنید')->persistent('خیلی خوب');
        return redirect()->back();
    }
علی بیات ( 106602 تجربه )
3 هفته پیش

پارامتر ورودی در متد checkOrder باید یه Category باشه . اما شما Order رو بهش پاس دادین..

محمود خسروی ( 2819 تجربه )
3 هفته پیش

من به روش زیر تغییر دادم اما هیچی نشد.

public function checkOrder($category)
{
    return !! Category::where('user_id' , $this->id)->where('category_id' , $category->id)->first();
}
برای ارسال پاسخ باید وارد سایت شوید