Php 锂关系名称空间bug?

Php 锂关系名称空间bug?,php,lithium,Php,Lithium,我的文件夹/命名空间层次结构: 应用程序/模型/实体 Entities.php 人 People.php (其他型号) 我按照这个问题的说明进行了操作,但在第468行的C:\xampp\htdocs\PhiCRM\libraries\limition\core\libraries.php中出现了一个错误“无法打开流:没有这样的文件或目录”,这是。。。正如您在上面看到的,它嵌套在另一个文件夹中,如下面的configs数组所示 我的修正:我改变了 public $belongsTo =

我的文件夹/命名空间层次结构:

  • 应用程序/模型/实体
    • Entities.php
      • People.php
      • (其他型号)
我按照这个问题的说明进行了操作,但在第468行的C:\xampp\htdocs\PhiCRM\libraries\limition\core\libraries.php中出现了一个错误“无法打开流:没有这样的文件或目录”,这是。。。正如您在上面看到的,它嵌套在另一个文件夹中,如下面的configs数组所示

我的修正:我改变了

public $belongsTo = array(
    'People' => array(
        'class' => '\app\models\entities\people\People',
        'key' => 'person_id',
    ),
);

现在错误消失了(将第二行从'People'更改为'People\People'),但现在我得到了错误:'Related model class'app\models\entities\People\People\People\People\People'not found'。在C:\xampp\htdocs\PhiCRM\libraries\lium\data\model\Relationship.php的第159行,它将另一个人添加到路径字符串


我的问题:这是故意的行为吗?关系模型不应该使用我在$configs数组中提供的类路径,而不是使用类名进行字符串连接吗?如果它是一个bug,我应该报告它吗?如何报告?

在librarires/limition/data/model/relaships.php,ln 115中,原始代码是:

    if (!$config['to']) {
        $assoc = preg_replace("/\\w+$/", "", $config['from']) . $name;  
        $config['to'] = Libraries::locate('models', $assoc);
    }
改为

    if (!$config['to']) {
        if(!$config['class']){
            $assoc = preg_replace("/\\w+$/", "", $config['from']) . $name;  
        }
        else{
            $assoc = $config['class'];
        }
        $config['to'] = Libraries::locate('models', $assoc);
    }
框架似乎假定相关模型将位于同一名称空间中。我对其进行了更改,以便如果在模型中的关系声明中填写了类配置,那么它将使用它

public $belongsTo = array(
    'People' => array(
        'to' => '\app\models\entities\people\People',
        'key' => 'person_id',
    ),
);
应该更好地使用“to”而不是“class”;-)

public $belongsTo = array(
    'People' => array(
        'to' => '\app\models\entities\people\People',
        'key' => 'person_id',
    ),
);