方法 create未定义!

#1 yuyu775

  • D:\AppServ\www\yh\SpeedPHP\Core\spController.php on line 125
120.
public function __call($name, $args)
121.
{
122.
if(in_array($name, $GLOBALS['G_SP']["auto_load_controller"])){
123.
return spClass($name)->__input($args);
124.
}elseif(!method_exists( $this, $name )){
125.             spError("方法 {$name}未定义!");

126.
}
127.
}
128.
129.
130.
* 获取视图对象

  • D:\AppServ\www\yh\modules\admin\article.php on line 21
16.
'source'   => $this -> spArgs('source'),
17.
'is_up'    => $this -> spArgs('is_up'),
18.
'url'      => $this -> spArgs('url'),
19.
'addtime'  => $addtime,
20.
);      
21.         $article->create($add);

22.         $this -> display("admin/article_add.html");
23.
}
24.
}
25. ?>   
  • D:\AppServ\www\yh\SpeedPHP\SpeedPHP.php on line 89
84.
eval($GLOBALS['G_SP']["dispatcher_error"]);
85.
exit;
86.
}
87.
88.
// 执行用户代码
89. $handle_controller->$__action();

90.
91.
// 控制器程序运行完毕,进行模板的自动输出
92.
if(FALSE != $GLOBALS['G_SP']['view']['auto_display']){
93.     $__tplname = $GLOBALS['G_SP']['view']['config']['template_dir']."/".
94.         $__controller.$GLOBALS['G_SP']['view']['auto_display_sep'].

  • D:\AppServ\www\yh\admin.php on line 12
7.
// 当前模块附加的配置
8. $spConfig['controller_path'] = APP_PATH.'/modules/'.basename(__FILE__,".php");
9. $spConfig['model_path'] = APP_PATH.'/lib/admin';
10.
11.
// 载入SpeedPHP框架
12.
require(SP_PATH."/SpeedPHP.php");



上面是报错信息




一下是我的控制层




/**
* 文章功能控制器
*/
class article extends spController
{
    // 添加文章
function add(){
     
        $article = spClass("article");
        $addtime = date("Y-m-d H:i:s");
        $add = array(
          'title'    => $this -> spArgs('title'),
          'content'  => $this -> spArgs('content'),
          'art_type' => $this -> spArgs('art_type'),
          'source'   => $this -> spArgs('source'),
          'is_up'    => $this -> spArgs('is_up'),
          'url'      => $this -> spArgs('url'),
          'addtime'  => $addtime,
        );      
        $article->create($add);
  $this -> display("admin/article_add.html");
}
}

2010-05-18 10:38:35

#2 yuyu775

不知道哪里错了  调了半天 硬说我  方法 create未定义!

2010-05-18 10:39:58

#3 chaobo_wu

检查一下你的model文件是否已继承spModel类

2010-05-18 10:51:33

#4 yuyu775

class article extends spModel
{
  var $pk = "art_id"; // 每个留言唯一的标志,可以称为主键
  var $table = "article"; // 数据表的名称
}

这是我的MODEL文件

2010-05-18 10:53:13

#5 jake

改一下model的名字:
class lib_article extends spModel

2010-05-18 11:02:59

#6 yuyu775

谢谢 果然改成lib_ 就好了  是不是必须得用lib_ 开头吗?

2010-05-18 11:06:45

#7 jake

不是,不过你的控制器article和模型article的类名一样了。

2010-05-18 11:26:54

#8 yuyu775

哦  原来如此

2010-05-18 11:59:15

#9 一米八三

yuyu775 发表于 2010-5-18 11:59
哦  原来如此
老大我也遇到了一样的问题啊!但是我的model的类名叫做m_admin,控制器里类名叫做admin,方法login中调用spClass的时候却提示说spClass没有定义.....这是怎么回事啊?

2012-07-02 21:56:01

#10 一米八三

jake 发表于 2010-5-18 11:26
不是,不过你的控制器article和模型article的类名一样了。
[table=98%]
[tr][td]
[table=98%]
[tr][td]老大我也遇到了一样的问题啊!但是我的model的类名叫做m_admin,控制器里类名叫做admin,方法login中调用spClass的时候却提示说spClass没有定义.....这是怎么回事啊?
[/td][/tr]
[/table]


[/td][/tr]
[/table]

2012-07-02 21:56:30

#11 一米八三

jake 发表于 2010-5-18 11:26
不是,不过你的控制器article和模型article的类名一样了。
老大我也遇到了一样的问题啊!但是我的model的类名叫做m_admin,控制器里类名叫做admin,admin中的方法login中调用spClass的时候却提示说spClass没有定义.....这是怎么回事啊?

2012-07-03 12:07:05

#12 jake

一米八三 发表于 2012-7-3 12:07
老大我也遇到了一样的问题啊!但是我的model的类名叫做m_admin,控制器里类名叫做admin,admin中的方法lo ...
你自己的帖子也说了提示是“控制器类(admin)与数据模型类重名”,而不是spClass未定义,这样混淆有意义吗?
http://www.speedphp.com/bbs/thread-3645-1-1.html

2012-07-03 12:23:45