Normally I put the logic in the service classes without using repository, for example, something like this:
namespace App\ProjectName\Profile;
use App\User;
class AccountService
{
private $userModel;
public function __construct(User $userModel)
{
$this->userModel = $userModel;
}
public function detail()
{
$user = \Auth::User();
return [
'id' => $user->id,
'name' => $user->name,
'email' => $user->email,
'keys' => $user->keys,
];
}
public function addKey($name, $key)
{
return $this->userModel->keys()->create([
'name' => $name,
'key' => $key
]);
}
}
I have seen some example out there, refactored even further by creating repository classes. something like UserController
inputs data, sends it to UserCreatorService
, which gets the UserRepository
which in turn gets the UserModel
. It seem UserCreatorService
is a repeat of UserRepository
?