锂关系名称空间错误?
我的文件夹/命名空间层次:锂关系名称空间错误?
- 应用程序/模型/实体
- Entities.php
- 人
- People.php
- (其他型号)
我跟着每这一问题的说明:lithium fill multiple models from view,却得到了一个错误“未能打开流:C中没有这样的文件或目录:\ XAMPP \ htdocs中\ PhiCRM \库\锂\核心\ Libraries.php在468" 线,这,是啊......曲子,你上面看到的,其嵌套在另一个文件夹,这是CONFIGS数组中指示,下面
我修复所示:我改变
public $belongsTo = array( 'People' => array(
'class' => '\app\models\entities\people\People',
'key' => 'person_id',
),
);
到
public $belongsTo = array( 'people\People' => array(
'class' => '\app\models\entities\people\People',
'key' => 'person_id',
),
);
现在错误消失(将第二行从'People'更改为'people \ People'),但现在出现错误:'Related model class'app \ models \ entities \ people \ people \ People ' 未找到。'在第159行的C:\ xampp \ htdocs \ PhiCRM \ libraries \ lithium \ data \ model \ Relationship.php中,所以现在它将其他人添加到路径字符串中。
我的问题:这是预期的行为?关系模型不应该使用我在$ configs数组中提供的类路径而不是使用类名字符串连接?如果它有缺陷,我应该报告它,以及如何?
回答:
public $belongsTo = array( 'People' => array(
'to' => '\app\models\entities\people\People',
'key' => 'person_id',
),
);
应工作更好 '到' 代替 '类' ;-)
回答:
在librarires /锂/数据/模型/ Relashionships.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);
}
似乎框架假设相关模型将在相同的命名空间。我改变了它,所以如果在模型中的关系声明中填写了类配置,它将使用它。
以上是 锂关系名称空间错误? 的全部内容, 来源链接: utcz.com/qa/265967.html