原则 2:注释从未被导入您可能忘记为此注释添加“use”语句了吗?

问题描述

很长一段时间后,我在 PHP 7.4 上将我的 Laravel/Doctrine 应用程序从 5.4/~1 升级到 8.25/2.12,我觉得我错过了一些备忘录。我知道 AnnotationRegistry 已被弃用,现在我们应该求助于 composer psr-4 自动加载器进行注释,但我收到以下类的以下错误

Doctrine\Common\Annotations\AnnotationException
[Semantical Error] The annotation "@App\Annotations\CRUD\Id" in class App\Models\General\Country was never imported. Did you maybe forget to add a "use" statement for this annotation?
<?PHP

namespace App\Models\General;

use App\Models\JsonSerializableModel;
use App\Models\JsonSerializableModelTrait;
use App\Models\PublicModel;
use App\Models\TimestampedModel;
use Doctrine\ORM\Mapping as ORM;
use App\Annotations\CRUD;

/**
 * @ORM\Entity
 * @CRUD\Id(alias="ctry")
 * @CRUD\CanAll(all=true)
 *
 * Dependency: None,Global. Edits by Super Admin Only.
 */
class Country extends TimestampedModel implements PublicModel,JsonSerializableModel
{
    use JsonSerializableModelTrait;

    /**
     * @var int
     * @ORM\Column(type="integer",nullable=false)
     * @ORM\GeneratedValue(strategy="IDENTITY")
     * @ORM\Id
     */
    protected $id;

    /**
     * @var string
     *
     * @ORM\Column(type="string",length=100,nullable=false)
     * @CRUD\Can(all=true)
     * @CRUD\CanExt(b=true)
     * @CRUD\Primary
     */
    protected $name;


...

我有 use Doctrine\ORM\Mapping as ORM;use App\Annotations\CRUD;,我试过 composer dump-autoload,我的 composer.json 中有出厂自动加载设置:

    "autoload": {
        "psr-4": {
            "App\\": "app/","Database\\Factories\\": "database/factories/","Database\\Seeders\\": "database/seeders/"
        }
    },

真的希望有人能指出我在这里做错了什么,几乎没有想法。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...