用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3395|回复: 5
收起左侧

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

[复制链接]
发表于 2013-4-12 14:38:17 | 显示全部楼层 |阅读模式
本帖最后由 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一片空白——我觉得应该把配置内容写一个示例,注释掉,以后大家实践的时候更好看。
弄了一上午,有点郁闷了


发表于 2013-4-12 15:09:19 | 显示全部楼层
1. ci for sae 不需要再配置,已经为SAE适应。 config下的database没有空白  见https://github.com/CodeIgniter-C ... config/database.php

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

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

4和5 参考回答1,不需要自己重新配置!
发表于 2013-4-12 19:28:34 | 显示全部楼层
呵呵 @月夜风 解答的比我好~
 楼主| 发表于 2013-4-26 16:06:52 | 显示全部楼层
月夜风 发表于 2013-4-12 15:09
1. ci for sae 不需要再配置,已经为SAE适应。 config下的database没有空白  见https://github.com/CodeIgn ...

很奇怪,为什么我从http://sae.sina.com.cn/?m=apps&a=detail&aid=161 安装的里面是空白的?
 楼主| 发表于 2013-4-26 16:07:07 | 显示全部楼层
月夜风 发表于 2013-4-12 15:09
1. ci for sae 不需要再配置,已经为SAE适应。 config下的database没有空白  见https://github.com/CodeIgn ...

求检查
发表于 2013-4-26 22:04:12 | 显示全部楼层
你可以直接下载
http://repo.appstore.sae.sina.co ... 9a3f8268501e5b9.zip
然后要手动初始化kvdb memcache mysql

本版积分规则