我正在做codecourse php oop login/register tutorial并遇到了一些麻烦。我遇到的问题是:
$user = new User();
$login = $user->login(Input::get('username'), Input::get('password'));
这些有条件地在验证传递时运行,它会执行,因为它不返回任何错误。我想尽可能简单,并且不要认为我需要包含太多代码,因为我认为我已经缩小了问题范围。
这是我的用户类中用于登录功能的代码
public function login($username = null, $password = null) {
$user = $this->find($username);
print_r($this->_data);
if($user) {
if ($this->data()->password === Hash::make($password, $this->data()->salt)) {
echo 'OK!';
} else {
echo '<br>';
echo 'This data password:';
var_dump($this->data()->password);
}
}
return false;
}
我知道正在检索我的数据,因为我在($ this-&gt; data)上运行print_r并返回用户的正确信息。因此,虽然我的数据正在被检索,但我认为这是导致我的错误的原因。这是我无法登录后的print_r的结果
Array ( [0] => stdClass Object (
[id] => 32
[email] => xxx
[fname] => xxx
[lname] => xxx
[username] => user
[password] => 295c7ac2341f2688838148728d450a5562933d5fbea6d2a9e9fec2eeab29dd84
[salt] => 4ÌxÇd”0ð&ÞðÈßr¡–k$ «%•¦S?~d$r
[name] => xxx
[joined] => 2016-09-28 07:10:32
[grouptype] => 1 ) )
我的$ user-&gt;登录方法不起作用的原因是因为用户不是对象,而是在找到semi working version of the code后对象的数组(或者至少是我假设的那个) (登录不起作用,寄存器不起作用),在没有
的情况下返回相同的数据Array ( [0] => stdClass Object
而只是简单地
stdClass Object ( [id] =>
为什么我的对象在数组内?