gpt4 book ai didi

php - Symfony 错误 : Attribute "Symfony\Component\Routing\Annotation\Route" cannot target function (allowed targets: class, 方法)

转载 作者:行者123 更新时间:2023-12-03 07:59:55 28 4
gpt4 key购买 nike

从 Symfony 6.1 升级到 6.2 后,我收到此错误:

Attribute "Symfony\Component\Routing\Annotation\Route" cannot target function (allowed targets: class, method)

...在此 Controller 上:

final class HomepageController extends AbstractController
{
#[Route(path: '/', name: 'homepage')]
public function __invoke(): Response
{
// ...
}
}

最佳答案

简短回答

执行以下操作之一即可修复该问题:

  • 将 PHP 更新至 >= 8.1.10
  • Route 属性从 __invoke() 向上移动到 class

长答案

Symfony 的 Route 属性允许在类和方法上使用,请参阅 Route :

#[\Attribute(\Attribute::IS_REPEATABLE | \Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD)]

在 Symfony 6.2 中,读取属性的方式已更改:https://github.com/symfony/symfony/pull/46001

不幸的是,PHP 8.1.6 中引入了一个错误,因此 \Attribute::TARGET_METHOD 不再涵盖魔术方法 __invoke()

此问题已在 PHP 8.1.10 中修复:https://github.com/php/php-src/pull/9173

关于php - Symfony 错误 : Attribute "Symfony\Component\Routing\Annotation\Route" cannot target function (allowed targets: class, 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74678366/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com