snllll 发表于 2013-4-12 14:38:17

请HEX给予一些关于SAE的帮助

本帖最后由 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_modelclass Blogmodel extends CI_Model {
既然译者发现了,我觉得是不是改正了更好一些?

4、返回到第一个问题,$this->db的初始化? database.php配置如下,应该没问题吧?

<?phpif ( ! 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一片空白——我觉得应该把配置内容写一个示例,注释掉,以后大家实践的时候更好看。
弄了一上午,有点郁闷了


月夜风 发表于 2013-4-12 15:09:19

1. ci for sae 不需要再配置,已经为SAE适应。 config下的database没有空白见https://github.com/CodeIgniter-Chinese/CodeIgniter_SAE/blob/master/application/config/database.php

2. $this->load->model('Blog') 这样加载没有问题 对应application\models下面的blog.php即可, $this->load->model('Blog_model ')则对应 blog_model.php 。 所以没有强制要求的。

3. “既然译者发现了,我觉得是不是改正了更好一些?”你也说译者了,有译者去修改原文的吗?那也太不尊重原作者了吧

4和5 参考回答1,不需要自己重新配置!

Hex 发表于 2013-4-12 19:28:34

呵呵 @月夜风 解答的比我好~

snllll 发表于 2013-4-26 16:06:52

月夜风 发表于 2013-4-12 15:09 static/image/common/back.gif
1. ci for sae 不需要再配置,已经为SAE适应。 config下的database没有空白见https://github.com/CodeIgn ...

很奇怪,为什么我从http://sae.sina.com.cn/?m=apps&a=detail&aid=161 安装的里面是空白的?

snllll 发表于 2013-4-26 16:07:07

月夜风 发表于 2013-4-12 15:09 static/image/common/back.gif
1. ci for sae 不需要再配置,已经为SAE适应。 config下的database没有空白见https://github.com/CodeIgn ...

求检查

月夜风 发表于 2013-4-26 22:04:12

你可以直接下载
http://repo.appstore.sae.sina.com.cn/806/39271/3588/5e0d1c6bd74ba6d2f9a3f8268501e5b9.zip
然后要手动初始化kvdb memcache mysql
页: [1]
查看完整版本: 请HEX给予一些关于SAE的帮助