我尝试过stensi,但我发现它有一些错误和用户指南中提到的意外输出。
例如,在尝试删除记录时会出现此错误:
$p=new Per();
$p->where('id',1)->get();
$p->delete();
,错误消息为:
undefined index id
何时
echo $p->UserName;
输出:
mhmd
和WanWizard也有这个错误:
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: array_key_exists() expects parameter 2 to be array, boolean given</p>
<p>Filename: libraries/datamapper.php</p>
<p>Line Number: 399</p>
如何克服这些错误或我能做些什么才能使其正常工作?
答案 0 :(得分:0)
我在../libraries/datamapper.php
第399行(WanWizard版本)更改了两行代码:
$d = array($this->config->item('datamapper'));
DataMapper::$config = $d;
并且错误消息消失了。
如果有人尝试过DataMapper并提出了更好的建议,请告诉我们。
答案 1 :(得分:0)
刚刚发现如果您自动加载datamapper配置文件
会发生此错误答案 2 :(得分:0)
Stensi的原始版本自2007年以来一直没有维护,只支持CI 1.4。这些天不再是一个选择。它在2008年由Overzealous分叉,我在2010年接管了该叉子的维护。
答案 3 :(得分:0)
我通过将配置文件从sparks目录移动到/ application / config目录来修复此问题(在CI spark版本中)。
答案 4 :(得分:0)
CI v2.1.4中发生了一些奇怪的事情
$this->config->load('datamapper', TRUE, TRUE);
Datamapper-ORM v1.8.2.1中 application / libraries / datamapper.php 的第391行未正确“命名”配置。如果你这样做
print_r ($this->config); die;
在第391行之后,您将看到所有配置值都在加载的配置数组中的常规CodeIgniter“命名空间”中。最简单的解决方法是通过更改
中的所有引用来自行命名 application / config / datamapper.php 文件。$config['prefix'] = '';
$config['join_prefix'] = '';
...
到
$config['datamapper']['prefix'] = '';
$config['datamapper']['join_prefix'] = '';
...
这就是我如何解决它。尽管@ Mhmdgomma的修复工作确实有效,但是当有更简单的解决方案时,我宁愿不破解系统的核心。有人应该让维护人员解决这个问题,但我不确定问题出在哪里。它看起来更像是CI问题,而不是DM。