CodeIgniter致命错误:无法重新声明类

z18hc3ub  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(182)

我收到错误:
致命错误:无法在应用程序\models\Entities\News.php中重新声明类News
这两个类如下:
application/models/News_model.php

<?php
require_once(APPPATH."models/Entities/News.php");

class News_model extends CI_Model {

    function __construct() {
        parent::__construct();
    }
}

application/models/Entities/News.php

<?php
use Doctrine\ORM\Mapping as ORM;

/**
* News
*
* @ORM\Table(name="news", indexes={@ORM\Index(name="slug", columns {"slug"})})
* @ORM\Entity
*/
class News {
}

第一类是模型,最后一类是Doctrine的实体类。
我看不出这两个名字有什么冲突。
我使用的是CodeIgniter 3.1.4
如何解决此问题?

ssm49v7z

ssm49v7z1#

您有两个同名的类。
require_once包含的文件名为News.php,因此我假设它是一个名为News的类。
然后你在Doctrine中也有一个News类。有两个类在同一个命名空间中有相同的名称,php不允许这样做。你要么需要使用命名空间,要么需要改变这两个类中的一个的名称。

请注意,codeigniter中的模型本身并不与您的Doctrine News类冲突,而是使用require once包含的文件。

相关问题