什么是stensi& amp; WanWizard datamaper版本?

时间:2012-05-27 13:11:08

标签: codeigniter-datamapper

我尝试过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>

如何克服这些错误或我能做些什么才能使其正常工作?

5 个答案:

答案 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。