我正在构建我的第一个Laravel应用程序,并且我试图弄清楚我应该如何在模型级别上散列密码。
问题是,在尝试使用Laravel Hash::
课程时,无法找到它。我试图查找相关的API文档,但除了对Illuminate
命名空间类的一些引用之外,找不到任何内容 - 而且我收集的Hash::
应该是全局可用的?
我是PHP命名空间的新手,我猜这可能与问题有关,因为错误表明它正在寻找App\Hash
我知道它不属于App
命名空间,而是Illuminate
命名空间。
这是我的代码:
<?php namespace App;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['first_name', 'last_name', 'default_currency', 'default_timezone', 'default_location', 'email', 'password'];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['password', 'remember_token'];
public function setPasswordAttribute($value) {
$this->attributes['password'] = Hash::make($value);
}
}
任何帮助,找出路线的原因,任何建议将不胜感激!
答案 0 :(得分:12)
您只需要导入\ Hash类,或使用\Hash::make()
调用它。只需执行Hash
,就像在调用它的类的命名空间中一样。 Hash
类是根命名空间的一部分,或\
。
\Hash
是一个'Facade'类,它基本上允许您从任何地方全局调用静态,而无需导入原始类。可以在documentation page for Facades上找到更多信息。
答案 1 :(得分:-1)
使用哈希; 在命名空间App包括使用哈希行后,它必须工作。