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

آپدیت اطلاعات کاربر

سلام
روزتون بخیر
من چندتا سوال داشتم
کد زیر رو برای آپدیت اطلاعات کاربر نوشتم
اما مشکلی که وجود داره اینه گه
1.من حتما باید هم نام و هم پسوورد رو وارد کنم وگرنه عملیات ادیت انجام نمیشه
یعنی کاربری که میخواد اطلاعاتش رو ادیت کنه حتما باید پسووردش رو هم تغییر بده
2.الان عکس رو فقط اگه بخواد ادیت کنه انجام میشه ولی نمیشه همزمان مثلا نام و عکس رو ادیت کنه(کد رو چطوری بنویسم که کاربر بتونه هر کدام از اطلاعاتش رو خواست راحت ادیت کنه)

Route::post('profile/{user}' , function (Request $request,User $user){
//handle the user upload of avatar

    if (request()->has('avatar')){
        $avataruploaded = request()->file('avatar');
        $avatarname = time() . '.' . $avataruploaded->getClientOriginalExtension();
        $avatarpath = public_path('/images/');
        $avataruploaded->move($avatarpath ,$avatarname );
        $user->update(['avatar' => '/images/' . $avatarname ,]);
    }

    $data = $request->validate([
        'name' => ['string', 'max:255'],
        'password' => [ 'string', 'min:8', 'confirmed'],
    ]);
//        if (! is_null($request->password)){
//            $request->validate([
//                'password' => ['required', 'string', 'min:8', 'confirmed'],
//            ]);
//            $data['password'] = $request->password;
//        }
    if (isset($_POST['is_disable'])) {
        $_POST['is_disable'] = 1;
    } else
        $_POST['is_disable'] = 0;

    if (isset($_POST['is_superuser'])) {
        $_POST['is_superuser'] = 1;
    } else
        $_POST['is_superuser'] = 0;

    if (isset($_POST['is_staff'])) {
        $_POST['is_staff'] = 1;
    } else
        $_POST['is_staff'] = 0;

    $user->update([
        'name'=>$data['name'],
        'password'=>Hash::make(($data['password'])),
        'is_disable' => $_POST['is_disable'],
        'is_superuser' => $_POST['is_superuser'],
        'is_staff' => $_POST['is_staff'],
    ]);
    if ($user->update())
    alert()->success('عملیات با موفقیت انجام شد.' , 'Message')->persistent('Ok');
    return view('profile' , array('user'=>Auth::user()));
});

ثبت پرسش جدید
Mohammad reza Golshahi
تخصص : Go - Python
@golshahimohammadreza 3 سال پیش مطرح شد
0

سلام دوست عزیز
@a.ghaderi1375
شما ولیدیشنتون طوریه که این مقادیری که فرمودید باید حتما ارسال بشه برای اینکه به صورت optional باشه باید nullable هم به ولیدیشنتون اضافه کنید.

  $data = $request->validate([
        'name' => ['nullable','string', 'max:255'],
        'password' => ['nullable ', 'string', 'min:8', 'confirmed'],
    ]);

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

@golshahimohammadreza
خیلی ممنونم از راهنمایی و کمکتون🌺☘️
الان یه مشکلی وجود داره بزرگوار
اگر فیلد پسوورد null باشه
یعنی من برای مثال فقط بخوام نام کاربر رو ادیت کنم و فیلد پسوورد رو خالی بذارم مقدار پسوورد nullمیشه
ولی من میخوام مقدار پسوورد در این حالت تغییر نکنه و همون مقدار قبلیش باشه


مشکات
تخصص : کاراموز
@meshkat315 3 سال پیش مطرح شد
0
Route::post('profile/{user}' , function (Request $request,User $user){
//handle the user upload of avatar

    if (request()->has('avatar')){
        $avataruploaded = request()->file('avatar');
        $avatarname = time() . '.' . $avataruploaded->getClientOriginalExtension();
        $avatarpath = public_path('/images/');
        $avataruploaded->move($avatarpath ,$avatarname );
        $user->update(['avatar' => '/images/' . $avatarname ,]);
    }

    $data = $request->validate([
        'name' => ['nullable','string', 'max:255'],
        'password' => [ 'string', 'min:8', 'confirmed'],
    ]);
        if (! is_null($request->password)){
            $request->validate([
                'password' => ['required', 'string', 'min:8', 'confirmed'],
            ]);
            $data['password'] = $request->password;
        }
    if (isset($_POST['is_disable'])) {
        $_POST['is_disable'] = 1;
    } else
        $_POST['is_disable'] = 0;

    if (isset($_POST['is_superuser'])) {
        $_POST['is_superuser'] = 1;
    } else
        $_POST['is_superuser'] = 0;

    if (isset($_POST['is_staff'])) {
        $_POST['is_staff'] = 1;
    } else
        $_POST['is_staff'] = 0;

    $user->update([
        'name'=>$data['name'],
        'password'=>Hash::make(($data['password'])),
        'is_disable' => $_POST['is_disable'],
        'is_superuser' => $_POST['is_superuser'],
        'is_staff' => $_POST['is_staff'],
    ]);
    if ($user->update())
    alert()->success('عملیات با موفقیت انجام شد.' , 'Message')->persistent('Ok');
    return view('profile' , array('user'=>Auth::user()));
});

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

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