php - 查找父记录的学说
问题描述
我正在使用类表继承如下
<?php
namespace MyProject\Model;
/**
* @Entity(repositoryClass="PersonRepository")
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"person" = "Person", "owner" = "Owner"})
*/
abstract class Person
{
private $someProperty;
// ...
}
/** @Entity(repositoryClass="EmployeeRepository") */
class Employee extends Person
{
// ...
}
/** @Entity(repositoryClass="OwnerRepository") */
class Owner extends Person
{
// ...
}
我也有每个实体的存储库。我怎样才能EmployeeRepository::getSomething(1)
返回所有等于 1 的人(即员工和所有者)someProperty
,而不仅仅是所有员工?
<?php
namespace MyProject\Repository;
abstract class PersonRepository
{
public function getSomething($someProperty)
{
//Desire is to return both Employees and Owners
return $this->findBy(['someProperty'=>$someProperty]);
}
}
class EmployeeRepository extends PersonRepository
{
public function getSomething($someProperty)
{
if($someProperty==123) {
//Do something
}
else return parent::getSomething($someProperty);
}
}
解决方案
推荐阅读
- cs-script - CS 脚本和实体框架
- mysql - 高效的数据库架构
- html - 为什么在表格行上应用填充不起作用(这是一个坏主意)
- xcode - Swiftlint 自动更正/修复似乎无法修复 lint 问题
- python - 如何捕获数据框中值更改的生效日期
- amazon-web-services - AWS ECS FARGATE - 无法从 docker 私有存储库中提取图像
- jira - 如何计算 JIRA Cloud REST API 中的用户总数?
- node.js - 如果 Array 包含另一个 Array 的任何值,则 Mongoose 聚合匹配
- kubernetes - Kubernetes Pod env 用一个单引号变成了 Kubernetes 创建后的三个
- python - 无法在虚拟环境中下载依赖项