在我的Symfony 3项目中,我有一些实体和存储库。不幸的是,在存储库文件中,我只能添加get或getAll函数。我想添加实例函数checkBlocked()来检查用户是否被阻止。我应该在哪里添加该功能?要存储库文件还是其他地方?
答案 0 :(得分:1)
存储库文件应包含与返回的数据库数据有关的任何内容,无论是复杂的查询,还是仅用于您将要使用的查询。
实体文件基本上是数据库数据的对象,也称为抽象。这样做是为了无论我们使用哪种类型的数据库,我们都可以将其统一存储,从而使其独立于数据库,因此下面是一个理想的示例。
假设我们有一个同时具有名字和姓氏字段的实体:
/**
* @return mixed
*/
public function getFirstName()
{
return $this->firstName;
}
/**
* @param mixed $firstName
*/
public function setFirstName($firstName): void
{
$this->firstName = $firstName;
}
/**
* @return mixed
*/
public function getLastName()
{
return $this->lastName;
}
/**
* @param mixed $lasttName
*/
public function setLastName($lastName): void
{
$this->lastName = $lastName;
}
但是可以说我们需要全名,键入
可能很麻烦 $user->getFirstName() . ' ' . $user->getLastName();
那为什么不只是添加一种方法来为我们做呢?
public function getFullName()
{
return $this->first_name . ' ' . $this->last_name;
}
所以换句话说,这听起来像您所说的checkBlocked方法是一种禁止系统。我的猜测是您有一个名为block的数据库列,它是一个很小的int。如果确实如此,我会说它属于该实体。
public function getIsUserBlocked()
{
// return your column here
}