راکت

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

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();
    }
ثبت پرسش جدید

پاسخ‌ها

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

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

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

محمود خسروی
محمود خسروی
@oxbir

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

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

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

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

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

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