مشکات
4 سال پیش توسط مشکات مطرح شد
14 پاسخ

اضافه کردن یک کاربر جدید با ایمیل تکراری زمانی که به شکل soft حذف شده

سلام
خسته نباشید و روزتون بخیر
من میخوام یه کاربر جدید با ایمیل کاربری که قبلا با متد soft deleteحذف شده.ایجاد کنم ولی مدام ارور میده این ایمیل از قبل وجود داره
طبیعی هم هست دیگه
چون کاربر از دیتابیس حذف نمیشه
ممنون میشم راهنماییم کنید


ثبت پرسش جدید
رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
0

سلام وقتتون بخیر!

الان میخواید کاربر رو حذف کنید؟

من ترجیح میدم که کاربر رو دوباره فعال کنم اگر بود و حذف شده بود با soft delete


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 4 سال پیش مطرح شد
0

سلام از این rule استفاده کنید.

Rule::unique('users')->whereNull('deleted_at')

@a.ghaderi1375


مشکات
تخصص : کاراموز
@meshkat315 4 سال پیش مطرح شد
0
//Restoring a Soft Deleted record
    public function restore($id)
    {
        User::withTrashed()->find($id)->restore();
        alert()->success('عملیات با موفقیت انجام شد.' , 'Message')->persistent('Ok');
        return back();
    }

@Rp76

سلام آقای پارسیان
من با این کد میتونم کاربری رو که با soft deleteحذف کردم دوباره برگردونمش
اما الان میخوام بدون اینکه کاربر حذف شده رو restoreکنم بتونم با همون ایمیل کاربر حذف شده یک کاربر جدید بسازم


مشکات
تخصص : کاراموز
@meshkat315 4 سال پیش مطرح شد
0

@websaz
سلام بزرگوار
ممنونم از راهنماییتون
الان امتحانش میکنم


مشکات
تخصص : کاراموز
@meshkat315 4 سال پیش مطرح شد
0

@websaz

 public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique('email')->whereNull('deleted_at');
            $table->boolean('is_superuser')->default(0);
            $table->boolean('is_staff')->default(0);
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->boolean('is_disable')->default(0);
            $table->rememberToken();
            $table->timestamps();
        });

کدی که گفتین رو اضافه کردم ولی اجرا نشد و بازم گفت ایمیل تکراریه


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 4 سال پیش آپدیت شد
0

نه به این صورت در function store هنگام validate یا در request.
@a.ghaderi1375


مشکات
تخصص : کاراموز
@meshkat315 4 سال پیش مطرح شد
0
        $data = $request->validate([
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255',Rule::unique('email')->whereNull('deleted_at')],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);

@websaz
حتی با این هم اجرا نشد😥


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 4 سال پیش مطرح شد
0

سلام شما اشتباه نوشتید.

        $data = $request->validate([
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255',Rule::unique('users'/* در اینجا نام table قرار می گیرد */)->whereNull('deleted_at')],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);

@a.ghaderi1375


مشکات
تخصص : کاراموز
@meshkat315 4 سال پیش آپدیت شد
0

@websaz
باز هم اجرا نشد
نمیدونم مشکل کجاست


مشکات
تخصص : کاراموز
@meshkat315 4 سال پیش مطرح شد
0
   protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],

        ]);
    }

@websaz

چطوری میتونم کدی که نوشتین رو به این قسمت اضافه کنم؟


مشکات
تخصص : کاراموز
@meshkat315 4 سال پیش مطرح شد
0
   protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users')->whereNull('deleted_at')],
            'password' => ['required', 'string', 'min:8', 'confirmed'],

        ]);
    }

اینطوری توی کنترلر registerقرارش دادم ولی این ارور رو دارمتوضیح تصویر رو وارد کنید


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 4 سال پیش مطرح شد
0

در migration یونیک را بردارید و فقط در validation چک کنید.
@a.ghaderi1375


مشکات
تخصص : کاراموز
@meshkat315 4 سال پیش مطرح شد
0
    public function store(Request $request)
    {
       $data = $request->validate([
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users')->whereNull('deleted_at')],
            'password' => ['required', 'string', 'min:8', 'confirmed'],

        ]);

این قسمت مربوط به ولیدیشن

  public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email');
            $table->boolean('is_superuser')->default(0);
            $table->boolean('is_staff')->default(0);
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->boolean('is_disable')->default(0);
            $table->rememberToken();
            $table->timestamps();
        });

اینم مربوط ب مایگریشن

اجرا نشد بازم بزرگوار@websaz


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
0

این کار اشتباهی هست به کل

اگر هم موفق به اضافه کردن بشید
نمیتونید login کنید


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

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