你能帮我理解扩展现有模型的正确方法吗?我正在开发一个包,并希望尽可能多地与主应用程序分开。
我想拥有User
模型的所有现有功能,但只添加与另一个模型的关系。在我的包裹User
中,我可以有几个 ( hasMany
) Article
。我没有添加方法,而是\App\User
在我的包中创建了一个新模型class User extends \App\User
:
namespace Package\Sample;
use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
/**
* Class User
* @package Package\Sample
*/
class User extends \App\User
{
use HasApiTokens, Notifiable;
public function articles()
{
return $this->hasMany(Article::class);
}
}
为了使它工作,我为我的包添加了配置auth.php
:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => \Package\Sample\User::class,
],
],
'guards' => [
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
我的问题:扩展现有模型的功能是“最佳实践”吗?