问题描述
很长一段时间后,我在 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 (将#修改为@)