Ner*_*nNF 6 php model package laravel laravel-5.5
我开发了一个存储LaravelRoot/packages/myname/project/在Laravel中的软件包.
在我的包中,我将不得不使用包含默认用户模型中未提及的关系的扩展用户模型.
现在我的问题是:如何覆盖我的包中的默认用户模型?
更多细节:
如果我通过Auth::user()我的包内收到当前用户,我将使用默认值接收一个对象App\User.
我扩展了这个模型,现在包含一个新的关系函数,存储在LaravelRoot/packages/myname/project/src/App/Models/User(namespace :)中Myname\Myproject\App\Models.这是我的关系函数:
/**
* The roles that belong to the user.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function roles()
{
return $this->belongsToMany(Role::class)->withTimestamps();
}
Run Code Online (Sandbox Code Playgroud)
这个关系只在我的包中使用,所以我不想在默认情况下存储这个函数App\User.是否有可能Auth::user()在我的包中接收我的扩展用户模型的对象,或者我每次需要这个时都必须手动接收这个对象?
我认为,最简单的方法是通过扩展App\User模型来制作包模型.您只需要打开config/auth.php并设置模型类.
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => Project\Models\User::class,
],
Run Code Online (Sandbox Code Playgroud)
您将获得正确的模型Auth::user().
| 归档时间: |
|
| 查看次数: |
1271 次 |
| 最近记录: |