Проблема возникает, когда я использую метод «сохранить» для сохранения данных, поскольку он возвращается как неопределенный, это код:
public function profile()
{
return view('profile.edit', ['user' => Auth::user()]);
}
public function update(Request $request)
{
$request->validate([
'fullName' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users,email,' . Auth::id(),
'image' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$user = Auth::user();
$user->name = $request->input('fullName');
$user->email = $request->input('email');
if ($request->hasFile('image')) {
if ($user->image) {
Storage::delete('public/profile_images/' . $user->image);
}
$imageName = time() . '.' . $request->image->extension();
$request->image->storeAs('public/profile_images', $imageName);
$user->image = $imageName;
}
$user->save(); // it gives me undefined
return redirect()->route('profile.edit')->with('success', 'Profile updated successfully.');
}
public function updatePassword(Request $request)
{
$request->validate([
'currentPassword' => 'required',
'newPassword' => 'required|string|min:8|confirmed',
]);
$user = Auth::user();
if (!Hash::check($request->input('currentPassword'), $user->password)) {
return back()->withErrors(['currentPassword' => 'Current password is incorrect']);
}
$user->password = Hash::make($request->input('newPassword'));
$user->save(); // it gives me undefined
return redirect()->route('profile.edit')->with('success', 'Password changed successfully.');
}






Этот оператор // $user = Auth::user(); // плохо.
Итак, предложите это утверждение.
используйте Приложение\Модели\Пользователь;
...
$user = новый пользователь();
Проверьте, был ли этот путь включен в ваш контроллер
use Illuminate\Support\Facades\Auth;
Попробуйте dd($user), чтобы увидеть свои пользовательские данные.
Или вы можете обновить данные, используя свою электронную почту, поскольку она имеет уникальное значение;
$user = User::where('email', $request->email)->first();
Проблема, с которой вы столкнулись, скорее всего, связана с тем, как вы взаимодействуете с моделью пользователя в Laravel. Метод $user->save() не должен возвращать неопределенное значение в PHP. Вместо этого он должен возвращать логическое значение, указывающее, была ли операция сохранения успешной или нет. Вот несколько вещей, которые вы можете попробовать решить эту проблему:
Проверьте, правильно ли настроена модель User: Убедитесь, что ваша модель пользователя расширяет класс Illuminate\Foundation\Auth\User или соответствующий класс базовой модели для вашего приложения. Кроме того, убедитесь, что модель включает необходимые признаки, такие как Illuminate\Contracts\Auth\Authenticatable и Illuminate\Database\Eloquent\Casts\Asll, если вы используете какие-либо приведения. Проверьте подключение к базе данных: Убедитесь, что ваше приложение может правильно подключиться к базе данных. Проверьте конфигурацию вашей базы данных в файле .env или файле config/database.php.
Что вы подразумеваете под неопределенным?