每次我写一个Laravel模型时,它只会给我一种乱码的感觉。我在使用域驱动设计时特别有关系和其他模型功能。所以我想分离关系和功能。
示例我有一个扩展Eloqeunt的User类:
class User extends Eloquent{}
在这个类中我有注册函数和密码哈希函数等。另外,我们可以声明关系:
class User extends Eloquent{
function post(){
return $this->hasMany('POST');
}
}
出于某种原因,这对我来说味道很淡。我的解决方案是创建一个Entities文件夹并在里面创建一个User文件夹,该文件夹将保存2个文件,其中一个是UserRelationship,它将保存该类的关系:
class UserRelationship extends Eloquent{
function post(){
return $this->hasMany('POST');
}
}
和第二个将是我将编写所有函数的实际User类,这个类将扩展UserRelationship类而不是Eloquent:
class User extends UserRelationship{
public static function register($email, $password, $activate_token)
{
$user = new static(compact('email', 'password', 'activate_token'));
$user->raise(new UserWasRegistered($user));
return $user;
}
}
你们怎么看待这种方法我对这一切相对较新,所以我不知道这是不好的做法,还是为了得到很少的回报。你们推荐什么?
答案 0 :(得分:0)
对于用户模型,这是太多的工作。最简单的方法仍然是更好的方法是在用户模型中定义关系。例如,如果它是一个帖子模型,你有关系发布到"用户,评论,回复等"然后你可以尝试分裂你的人际关系