محمود خسروی
6 سال پیش توسط محمود خسروی مطرح شد
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.bayat 6 سال پیش مطرح شد
0

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


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

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

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

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

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