请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 9436|回复: 0

[访问交互] 提示“控制器类与数据模型类重名”?

[复制链接]
发表于 2012-8-4 13:35:32 | 显示全部楼层 |阅读模式
在刚开始使用SpeedPHP的时候,有些朋友会遇到以下情况:

method-undefined[1].jpg

提示“请检查是否控制器类与数据模型类重名”?

这是因为在SpeedPHP中,没有限制控制器(controller)和模型(model)的命名规则,所以有时候,会产生控制器类和模型类重名的情况,比如说在控制器guestbook.php中:

  1. <?php
  2. class guestbook extends spController
  3. {
  4.         function index(){
  5.                 $gb = spClass('guestbook');
  6.                 $result = $gb->find(array('id'=>2));
  7.                 dump($result);
  8.         }
  9. }
复制代码

就会出现该提示,问题出在:$gb = spClass('guestbook'); 开发者可能因为这个guestbook是model内的guestbook数据库模型类,其实不是。由于本身控制器guestbook就已经加载,所以spClass会直接使用当前的控制器guestbook,而不会去寻找model内的guestbook类。

解决的方法其实很简单,这里我们提供一个简单的命名规则给大家。

  • model内的数据库模型类,都加上前缀,比如说lib_,或者m_等等。
这里的命名规则,是“建议使用”,并非“强制使用”。我们知道许多的开发团队都有自己的命名规则,所以SpeedPHP中几乎是没有规定任何的命名规则,让大家可以按照自己喜欢的规则来开发。
比如说上例中的model的guestbook类,改名为lib_guestbook(文件名改成lib_guestbook.php,对应类名),那么问题就解决了。
  1. <?php
  2. class guestbook extends spController
  3. {
  4.         function index(){
  5.                 $gb = spClass('lib_guestbook');
  6.                 $result = $gb->find(array('id'=>2));
  7.                 dump($result);
  8.         }
  9. }
复制代码
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-2-19 21:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表