@mauscode

Как сделать проверку на значение в столбце базы данных?

Здравствуйте! Такой вопрос, у меня на сайте сделана авторизация через стим. В базу данных попадают данные о пользователе (username). К примеру человек изменил имя в стиме, надо сделать проверку на соответствие ника в стиме и в моей базе.
Контроллер:
public function __construct(SteamAuth $steam)
    {
        $this->steam = $steam;
    }

    /**
     * Redirect the user to the authentication page
     *
     * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
     */
    public function redirectToSteam()
    {
        return $this->steam->redirect();
    }

    /**
     * Get user info and log in
     *
     * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
     */
    public function handle()
    {
        if ($this->steam->validate()) {
            $info = $this->steam->getUserInfo();

            if (!is_null($info)) {
                $user = $this->findOrNewUser($info);

                Auth::login($user, true);

                return redirect()->intended('/'); // redirect to site
            }
        }
        return $this->redirectToSteam();
    }

    /**
     * Getting user by info or created if not exists
     *
     * @param $info
     * @return User
     */
    protected function findOrNewUser($info)
    {
        $user = User::where('steamid', $info->steamID64)->first();
        if (!is_null($user)) {
            return $user;
		

        return User::create([
            'username' => $info->personaname,
            'avatar' => $info->avatarfull,
            'steamid' => $info->steamID64
        ]);
    }
}


Ник меняешь в стиме, а на сайте всё тот же подгружается с базы

Как сделать проверку, что бы если ник поменялся он заносился в базу под новым ником. Помогите пожалуйста.
  • Вопрос задан
  • 103 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
if (!is_null($user)) {
    if ($user->username !== $info->personaname) {
        $user->update(['username' => $info->personaname]);
    }

    return $user;
}
Ответ написан
chupacabramiamor
@chupacabramiamor
Инженегр-программист
Полагаю, что приблизительно вот так:
...
    protected function findOrNewUser($info)
    {
        $user = User::where('steamid', $info->steamID64)->first();
        if (!is_null($user)) {
            if ($user->username != $info->personaname) {
                  $user->username = $info->personaname;
                  $user->save();
            }

            return $user;
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы