如何使用自定义控制器操作通过实体的第二个标识符(例如,通过电子邮件获取用户或其他用户名)来获取实体?
我试图这样写resource.yaml:
kubectl delete -f deployments.yaml --grace-period=0 --force
这是可能的方法吗?还是仅是在集合上调用GET并使用App\Entity\User:
itemOperations:
get:
method: 'GET'
path: '/users/{id}'
getByEmail:
method: 'GET'
path: '/users/email/{emailaddress}'
controller: 'App\Controller\User\GetByEmailAction'
之类的过滤器的方法?
答案 0 :(得分:1)
是的,您可以创建一个自定义操作。
namespace App\Controllers;
class GetByEmailAction {
public function __invoke($emailaddress, EntityManagerInterface $em) {
$user = $em->getRepository(User::class)->findOneBy[
'email' => $emailaddress
];
if (!$user) {
throw new NotFoundException('User not found');
}
return $user;
}
}
检查文档以获取更多示例Custom operation