راکت
2 پاسخ

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

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

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

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();
    }

ثبت پرسش جدید
علی بیات
علی بیات
تخصص :توسعه دهنده ارشد وب
@ali.bayat7 سال پیشمطرح شد
0

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


محمود خسروی
محمود خسروی
تخصص :طراح و برنامه نویس
@oxbir7 سال پیشمطرح شد
0

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

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

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

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