本帖最后由 snllll 于 2013-4-12 14:50 编辑
1、没有任何示例说明,数据库的配置一笔带过——开源项目的通病,作者认为很简单没必要,但是后来者实践过来中总是遇到莫名其妙的问题——但是你按照SAE常量配置后,居然是“Fatal_error: Call to a member function result() on a non-object in application/models/post_model.php on line 16” ,也就是说$this->db未被初始化 ,,检查autoload.php,把database加进去,问题照样无法解决;
2、http://codeigniter.org.cn/user_guide/general/models.html 中:
这里有个控制器的例子,加载一个模型,然后通过视图显示出来 class Blog_controller extends CI_Controller {
function blog()
{
$this->load->model('Blog'); 这里是不是有问题?应该是Blog_model吧?
$data['query'] = $this->Blog->get_last_ten_entries();
$this->load->view('blog', $data);
}
}
3、还是上面这个页面里面有如下内容:
模型是专门用来和数据库打交道的PHP类。例如,假设你想用CodeIgniter来做一个Blog。你可以写一个模型类,里面包含插入、更新、删除Blog数据的方法。下面的例子将向你展示一个普通的模型类:译者注:Blogmodel 这样的命名不符合CodeIgniter的开发规范。规范的类名命名:Blog_model class Blogmodel extends CI_Model {
既然译者发现了,我觉得是不是改正了更好一些?
4、返回到第一个问题,$this->db的初始化? database.php配置如下,应该没问题吧?
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$active_group = "www";
$active_record = TRUE;
$db['www']['hostname'] = SAE_MYSQL_HOST_M;
$db['www']['username'] = SAE_MYSQL_USER;
$db['www']['password'] = SAE_MYSQL_PASS;
$db['www']['database'] = SAE_MYSQL_DB;
$db['www']['dbdriver'] = "mysql";
$db['www']['dbprefix'] = "";
$db['www']['pconnect'] = TRUE;
$db['www']['db_debug'] = FALSE;
$db['www']['cache_on'] = FALSE;
$db['www']['cachedir'] = "";
$db['www']['char_set'] = "utf8";
$db['www']['dbcollat'] = "utf8_general_ci";
5、最前面试用了早起的1.7.2的SAE版本,WSS贡献了(作者辛苦了),但是load出问题,后来试了官方的SAE CI,发现config.php和database.php一片空白——我觉得应该把配置内容写一个示例,注释掉,以后大家实践的时候更好看。
弄了一上午,有点郁闷了
|