0

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

我怎样才能克服这些错误,或者我能做些什么来使它正常工作?

4

5 回答 5

0

Stensi 的原始版本从 2007 年开始就没有维护过,只支持 CI 1.4。这些天不再是真正的选择。它是在 2008 年被 Overzealous 分叉的,我在 2010 年接管了那个分叉的维护工作。

于 2013-02-07T20:32:30.840 回答
0

我在../libraries/datamapper.php第 399 行更改了两行代码(WanWizard 版本):

$d = array($this->config->item('datamapper'));
DataMapper::$config = $d;

并且错误消息消失了。

如果有人尝试过 DataMapper 并有更好的建议,请告诉我们。

于 2012-05-30T08:07:38.317 回答
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。

于 2013-09-05T20:21:18.133 回答
0

刚刚发现如果您自动加载数据映射器配置文件可能会发生此错误

于 2012-09-11T23:00:36.733 回答
0

我通过将配置文件从 sparks 目录移动到 /application/config 目录来解决这个问题(在 CI spark 版本中)。

于 2013-08-02T01:40:05.390 回答