Не могли бы вы помочь мне понять, как правильно расширить существующие модели?Я разрабатываю пакет и хочу сделать как можно больше отдельно от основного приложения.
Я хочу иметь все существующие функциональные возможности модели 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',
],
],
Мой вопрос : Является ли это «наилучшей практикой» для расширения функциональности существующих моделей?