+ -
当前位置:首页 → 问答吧 → D函数后,为什么总是create不成功呢

D函数后,为什么总是create不成功呢

时间:2010-08-27

来源:互联网

  1. $user = D("users");
  2.                 $result = $user ->create();
  3.                 if($result)
  4.         {
  5.                 $this->success("ok");
  6.         }else{
  7.                        $this->error('error');
  8.         }

  9. 总是跳转到 错误,不知道为什么?

  10. 有些什么要注意的地方吗?
复制代码

作者: harven   发布时间: 2010-08-27

错误提示是什么呢?

作者: luyanginwuxi   发布时间: 2010-08-27

删掉所有cache后,$this->error($user->getError());
显示的是  表单令牌错误,但貌似没有其他任何操作的代码

作者: harven   发布时间: 2010-08-27

那你去看一下手册中的表单令牌吧,你可能没配置好

作者: luyanginwuxi   发布时间: 2010-08-27

表单令牌配置我没有改动,用的默认的设置
手册看了很多遍了

作者: harven   发布时间: 2010-08-27

也有可能是url配置问题,我遇到过,我改成普通模式就ok了

作者: luyanginwuxi   发布时间: 2010-08-27

url配置?  
我完全是使用的系统默认配置,其他配置我都没有修改过哦

作者: harven   发布时间: 2010-08-27

系统默认配置不代表你的配置

作者: luyanginwuxi   发布时间: 2010-08-27

也有一种情况是这样的:

就是页面穿插了iframe页面的情况下,页面传递值的时候也会导致接受不到参数。曾经遇到这样的问题,后来页面修改了一下页面再传,又可以了。

作者: yishujia   发布时间: 2010-08-27

我上述的情况也会提示表单令牌错误的提示。

作者: yishujia   发布时间: 2010-08-27

我的页面结构如下,且没有使用iframe
  1. <include file="header" />
  2. <form action="__URL__/edit/" method="post" id="egForm" name="egForm">
  3. ……
  4. <input type="submit" name="button" id="button" value="保存更新" />
  5. </form>
  6. <include file="footer" />
复制代码

作者: harven   发布时间: 2010-08-27

你提交后你浏览器中的链接地址是什么?
config配置文件中
'URL_MODEL'=>
是几?

作者: luyanginwuxi   发布时间: 2010-08-27

提交后浏览器的链接地址是 http://localhost/freego/index.php/mine/edit/

config.php
  1. $sys_config = array(
  2.         'TMPL_SWITCH_ON'                =>        true,        // 启用多模版支持
  3.         'TMPL_DETECT_THEME'     => true,      // 自动侦测模板主题
  4. );

  5. return array_merge($db_config, $sys_config);
复制代码

作者: harven   发布时间: 2010-08-27

提交到浏览器的链接地址:http://localhost/freego/index.php/mine/edit/
  1. $sys_config = array(
  2. //    'ROUTER_ON'=>true,
  3. //    'DEFAULT_MODULE'=>'Tour',
  4. //    'THINK_PLUGIN_ON'=>true,
  5. //    'DEBUG_MODE'=>false,
  6. //    'USER_AUTH_KEY'=>'freego_admin_id',
  7.     'TMPL_SWITCH_ON'        =>    true,    // 启用多模版支持
  8.     'TMPL_DETECT_THEME'     => true,      // 自动侦测模板主题
  9. );

  10. return array_merge($db_config,/*$user_config,*/$sys_config);
复制代码

作者: harven   发布时间: 2010-08-27

我发不出贴了?  再试试

作者: harven   发布时间: 2010-08-27



config.php里
  1. $sys_config = array(
  2.         'TMPL_SWITCH_ON'   =>  true,  
  3.         'TMPL_DETECT_THEME'   => true,  
  4. );
  5. return array_merge($db_config, $sys_config);
复制代码

作者: harven   发布时间: 2010-08-27

重新写了个简单的测试文件,啥代码都没有加,只是create(), 仍然不成功...不知道啥原因,貌似TP缺少些错误捕捉的机制

作者: harven   发布时间: 2010-08-30

D('user')要大写D('User')

作者: tydgb   发布时间: 2010-08-31

$user = D("users");
数据表名不是要大写吗

作者: tydgb   发布时间: 2010-08-31

是要大写的,楼上很仔细嘛

作者: luyanginwuxi   发布时间: 2010-08-31

yishujia 怎么修改页面再传啊?
我现在遇到这个问题。

作者: 你知我知   发布时间: 2010-09-10



现在解决了吗\?到底哪出问题了??

作者: benchdog   发布时间: 2010-09-13

我也发现了,只要create之前,window.open一个新页面,或iframe了一个页面,总之是执行了另外一个页面,则这个页面的create返回结果就是false了,不知道为什么

作者: liuenyi   发布时间: 2011-10-29