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

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

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


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

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

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

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


سبحان مولایی
سبحان مولایی
تخصص : برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
0

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

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

@a.ghaderi1375


مشکات
مشکات
تخصص :کاراموز
@meshkat3155 سال پیشمطرح شد
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کنم بتونم با همون ایمیل کاربر حذف شده یک کاربر جدید بسازم


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

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


مشکات
مشکات
تخصص :کاراموز
@meshkat3155 سال پیشمطرح شد
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 :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
0

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


مشکات
مشکات
تخصص :کاراموز
@meshkat3155 سال پیشمطرح شد
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 :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
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


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

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


مشکات
مشکات
تخصص :کاراموز
@meshkat3155 سال پیشمطرح شد
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

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


مشکات
مشکات
تخصص :کاراموز
@meshkat3155 سال پیشمطرح شد
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 :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native
@websaz5 سال پیشمطرح شد
0

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


مشکات
مشکات
تخصص :کاراموز
@meshkat3155 سال پیشمطرح شد
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
@Rp765 سال پیشمطرح شد
0

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

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


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

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