سلام
روزتون بخیر
من چندتا سوال داشتم
کد زیر رو برای آپدیت اطلاعات کاربر نوشتم
اما مشکلی که وجود داره اینه گه
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()));
});
سلام دوست عزیز
@a.ghaderi1375
شما ولیدیشنتون طوریه که این مقادیری که فرمودید باید حتما ارسال بشه برای اینکه به صورت optional باشه باید nullable هم به ولیدیشنتون اضافه کنید.
$data = $request->validate([
'name' => ['nullable','string', 'max:255'],
'password' => ['nullable ', 'string', 'min:8', 'confirmed'],
]);
@golshahimohammadreza
خیلی ممنونم از راهنمایی و کمکتون🌺☘️
الان یه مشکلی وجود داره بزرگوار
اگر فیلد پسوورد null باشه
یعنی من برای مثال فقط بخوام نام کاربر رو ادیت کنم و فیلد پسوورد رو خالی بذارم مقدار پسوورد nullمیشه
ولی من میخوام مقدار پسوورد در این حالت تغییر نکنه و همون مقدار قبلیش باشه
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()));
});
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟