Обновить данные с помощью laravel

Проблема возникает, когда я использую метод «сохранить» для сохранения данных, поскольку он возвращается как неопределенный, это код:

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.');
}
  • Я проверяю, правильно ли использую объект Auth::user().
  • Убедитесь, что форма правильно отправляет данные соответствующему контроллеру и что поле изображения правильно настроено для загрузки файлов.
  • Убедитесь, что модель пользователя правильно использует черты Eloquent и что конфигурация точна.

Что вы подразумеваете под неопределенным?

xenooooo 20.05.2024 02:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
82
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Этот оператор // $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.

Другие вопросы по теме