1

我正在尝试更新从 Laravel 4 中的数据库中提取的用户的密码。这是我所拥有的:

$user = User::where('username', $username)->get();
if (!empty($user)) {
    $user->password = Hash::make($password);
    $user->save();
}

但是 Laravel 告诉我这save是一种未知的方法。我在这里做错了什么?

4

2 回答 2

8

get返回一个用户数组。您需要使用first来获取单个用户对象,该对象将允许您调整密码并保存记录。

if ($user = User::where('username', $username)->first())
{
    $user->password = Hash::make($password);

    $user->save();
}
于 2013-05-03T03:04:00.353 回答
0

您确定$user其中实际上有一个“用户”吗?

它不会是“空的”——它将是 BOOL false。尝试var_dump($user)并确认返回的东西?

尝试这个:

$user = User::where('username', $username)->get();
var_dump($user);
if ($user) {
    $user->password = Hash::make($password);
    $user->save();
}
于 2013-03-06T11:26:05.360 回答