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

时间:2017-04-05 16:33:17

标签: php codeigniter doctrine-orm

我收到错误:

  

致命错误:无法在应用程序\ models \ Entities \ News.php中重新声明类新闻

这两个课程如下:

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

任何人都知道如何解决这个问题?

先谢谢!

1 个答案:

答案 0 :(得分:1)

您有两个同名的课程。

require_once中包含的文件名为News.php,因此我认为它是一个名为News的类。

然后你在Doctrine中也有一个News类。有两个类在同一名称空间中具有相同的名称,php不允许这样做。您将需要查看使用命名空间或更改这两个类之一的名称。

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