【问题标题】:What is causing the error "Cannot declare class className because the name is already in use"是什么导致错误“无法声明类 className,因为该名称已在使用中”
【发布时间】:2014-12-10 20:59:00
【问题描述】:

我找不到这个错误的原因。

我有一个模型(学校资料)与另一个模型(学习领域)有关系。

当我尝试访问相关模型时,我收到错误“无法声明类 app\models\FieldOfStudy,因为该名称已在使用中”

我不知道在其他地方使用它。

关系代码:

public function getFieldsOfStudy()
{
    return $this->hasMany(FieldOfStudy::className(), ['fieldOfStudyId' => 'fieldOfStudyId'])
        ->viaTable('schoolProfileFieldOfStudyXref', ['schoolProfileId' => 'schoolProfileId']);
}

我正在尝试像这样访问相关模型:

$schoolProfile->fieldsOfStudy;

特别令人沮丧的是,我在另一个项目中使用了这些相同的类。我从未见过这个错误。错误输出表明上面的 hasMany 函数在尝试加载类时发生了错误。

有什么想法吗?

【问题讨论】:

  • 好的,我看到你解决了......我在想更微妙的原因,不是你有错字......这是你需要检查的第一件事。继续接受你自己的答案,谁知道什么时候有人打错了,而不是检查明显的问题,而是先问它……无论如何,这种东西是无价的。
  • 我有数百个类文件,我不知道为什么这个 ONE 有错字,生成了命名空间,这是可能完全无意击键造成损害的时候之一。这里(对我而言)的重点是,我永远不会将此错误(因为看似具有误导性的错误消息)与拼写错误的命名空间相关联。

标签: yii2


【解决方案1】:

我在 FieldOfStudy 类的命名空间声明中有错字。我从这篇文章中得到了检查的想法:symfony2 fatal error Cannot redeclare class

帮助的确切部分是:

“这里有一个提示:检查你是否不小心删除或拼写错误:文件中的命名空间包含 php 声称它试图重新定义的类的定义。”

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2016-11-03
    • 2020-03-20
    • 2020-10-10
    • 2019-12-25
    • 2019-08-23
    • 2021-08-17
    • 2020-06-21
    • 2019-04-15
    相关资源
    最近更新 更多