标签: codeigniter

试图创建一个名为"List"的CodeIgniter控制器

我在controllers/list.php中有以下代码:

<?php
class List extends Controller { 
    function index()
    {
        echo "hi";
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

但是,尝试访问它会给我以下PHP错误:

解析错误:语法错误,意外的T_LIST,在第3行的/var/www/sitename/htdocs/system/application/controllers/list.php中期待T_STRING

将文件重命名为"example.php"并将"class List"替换为"class Example"完全正常......我的第一个想法是"List"可能是一个保留名称,但我在这里检查了CI的保留名称列表,它是不在那里.

我知道我可以通过调用其他东西解决问题,但我真的希望我的控制器被称为"列表",如果可能的话.任何想法,或洞察为什么会发生这种情况?

谢谢,
麻辣

php controller codeigniter reserved-words

6
推荐指数
1
解决办法
2966
查看次数

模型在MVC框架中应该有多粗粒度?

我一直在阅读之前提出的几个问题,我没有遇到过一个以"黑白"为我回答问题的问题!所以,如果这是重复的,请道歉.问题可能类似于询问"一根绳子有多长",但请耐心等待!

对于registernation系统,我有一个用户模型,其功能如下:

  • 添加用户
  • DELETE_USER
  • activate_user

上述用户模型处理一个表.MySQL数据库中的users表.

你可以猜出每个函数的功能但是这个足够粗糙吗?我的意思是我的模型应该包含更广泛的方法,例如:

  • add_record
  • delete_record
  • update_record

我在表中传递的内容和要删除,添加或更新的记录的唯一标识符?

我正在使用codeigniter,但我对如何在纯MVC框架中完成任务感兴趣.

如果这个问题太挑剔,我道歉.

谢谢大家

php model-view-controller frameworks codeigniter

6
推荐指数
1
解决办法
194
查看次数

Codeigniter单元测试模型

我是单元测试的新手,所以这可能是一个有点愚蠢的问题.想象一下,我们有一个简单的模型方法.

public function get_all_users($uid = false, $params = array()){
    $users = array();
    if(empty($uid) && empty($params)){return $users;}
    $this->db->from('users u');
    if($uid){
        $this->db->where('u.id',(int)$id);
    }
    if(!empty($params)){
       if(isset($params['is_active']){
          $this->db->where('u.status ', 'active');
       }
       if(isset($params['something_else']){ // some more filter actions}
    }
    $q = $this->db->get();
    if($q->num_rows()){
        foreach($q->result_array() as $user){
            $users[$user['id']] = $user;
        }
    }
    $q->free_result();
    return $users;
}
Run Code Online (Sandbox Code Playgroud)

问题是如何为它编写_good测试?UPD:我想,最好的CI单元测试库是Toast,所以我正在寻找的例子,最好用它来编写.谢谢.

php unit-testing codeigniter models

6
推荐指数
1
解决办法
5309
查看次数

代码点火器 - >附上电子邮件

你如何使用email-> attach功能?

我无法想象发生了什么,当我把电子邮件的代码 - >附加消息后,空白(邮件正文)并没有附加.

如果我删除该代码行,一切都恢复正常..

谢谢

我的控制器(sendmail.php)

<?php

 class Sendmail extends Controller {

      function __construct() {
           parent::Controller();
           $this->load->library('email');
           $this->load->helper('url');
           $this->load->helper('form');
           $this->load->library('validation');
      }

      function index() {

           $info = array (
                'nome'  => $this->input->post('nome'),
                'mail'  => $this->input->post('email'),
                'motivo'    => $this->input->post('motivo'),
                'mensagem'  => $this->input->post('mensagem'),
                'anexo' => $this->input->post('upload'),
           );

           $this->load->library('email');
           $this->email->set_newline('\r\n');

           $this->email->clear();
           $this->email->from($info['mail'], $info['nome']);
           $this->email->to('example@mai.com');
     /* $this->email->cc(''); # não é preciso */
           $this->email->subject($info['motivo']);
           $this->email->message($info['mensagem']);
           $this->email->attach($info['anexo']);

           if ($this->email->send() ) {
                echo 'sent';
           }

           else {
            $this->load->view('formulario');
    # show_error( $this->email->print_debugger() );
           }

      }

 }
?> …
Run Code Online (Sandbox Code Playgroud)

php email codeigniter

6
推荐指数
1
解决办法
2万
查看次数

如何调试PHP?

我们如何在PHP中进行基本调试?

任何人都可以分享关于调试PHP应用程序的真正恐怖故事(或者(甚至更好)PHP框架如Codeigniter和Wordpress)?

我喜欢听到真实的体验,以防我在学习PHP的过程中遇到类似的情况.

php debugging wordpress codeigniter

6
推荐指数
1
解决办法
820
查看次数

CodeIgniter的调试模式?

CodeIgniter是否提供调试模式,例如,在访问无效URL时?

Ruby on Rails确实在给出错误的URL时显示调试消息,并且控制器无法使用路由映射解析它.如何在CodeIgniter中启用此类调试消息?

探查者......

$this->output->enable_profiler(TRUE);
Run Code Online (Sandbox Code Playgroud)

...仅影响单个班级,但不影响所有路线.因此,在没有实际调试器模式的情况下进行调试有点困难.:-)

php codeigniter

6
推荐指数
1
解决办法
3万
查看次数

CodeIgniter输出缓存如何工作?

我看了这个链接: -

http://codeigniter.com/user_guide/general/caching.html

它写道: -

When a page is loaded for the first time, the cache file will be written to your system/cache folder

并且我们可以通过缓存视图$this->output->cache(60);.但它是如何实际工作的?如果我的用户经常更新和删除记录,那么该视图会经常发生变化.它会显示修改过的数据吗?或者缓存会带回旧的陈旧数据吗?(在插入和更新之前)?如果它自动管理并从数据库中提取新数据,那么在cache功能中指定分钟的目的是什么?

提前致谢 :)

php caching codeigniter

6
推荐指数
2
解决办法
6594
查看次数

CodeIgniter:如何"突出显示"用户当前所在页面的链接?

CodeIgniter相当新,仍然掌握MVC方法.我只是想知道解决这个问题的最佳方法是什么:

我的导航栏突出显示当前活动的链接,如下所示:

<a href="index.hml" id="active">Index</a>
<a href="blog.hml">Blog</a>
Run Code Online (Sandbox Code Playgroud)

现在,当我去blog.html时,我希望id ="active"相应地转移.通常我会为每个链接分配一个变量,然后将其值设置为'id ="active'.不知怎的,我不认为这是最好的方法.有什么想法吗?

更新(2012年9月12日)自从问这个问题后,我转到Kohana并扩展了一个完全为此目的而创建的模块.现在,我需要做的就是在配置数组中指定我的菜单项,并突出显示自动发生.该模块在这里.

html php codeigniter

6
推荐指数
2
解决办法
8699
查看次数

在Codeigniter中写一个数组来配置?

我正在使用我创建的配置文件来存储用户.这肯定不是用于配置的配置,但它是一个非常小的应用程序,我认为这将是一个很好的解决方案.

我的数组看起来像这样:

$config['users'] = array(array('username' => 'username', 'password' => 'password'));
Run Code Online (Sandbox Code Playgroud)

这很好用.我可以快速轻松地检索信息.但是,如果我尝试将新数组(新用户)写入配置文件,我会收到此错误:isset中的非法偏移类型或为空

我正在使用$this->config->item('users', array('username' =>....))哪个似乎不支持数组.

如何将数组写入配置变量?还有另外一种方法吗?

编辑:好的,由于phirschy给出的答案,错误是固定的.我非常确定我可以使用config-> item(),我没有检查手册中的config-> set_item()......但是,它仍然不起作用.这是具体的代码:

        $users = $this->config->item('users');
        array_push($users, array('username' => $this->input->post('username'), 'password' => $this->input->post('password')));
        $this->config->set_item('users', json_encode($users));
        echo json_encode($users);
Run Code Online (Sandbox Code Playgroud)

这段代码是通过Ajax调用的,我有一个警告框,看看它是否正确.他们是.正如你所看到的,我已经尝试将它存储为json而不是数组....但这也不起作用.请帮忙?

谢谢

php codeigniter

6
推荐指数
1
解决办法
5041
查看次数

登录后是否有预期的URL重定向+默认重定向?

当用户尝试通过链接访问我们的网站时(例如访问www.website.com/privatepage),他们会被重定向到登录页面.登录后,我们希望将它们重定向到预期的网址 - 您是如何做到这一点的?

此外,我们还有一个用例,用户从主页登录,或者直接进入没有预期URL的登录页面 - 在这种情况下,我们想将它们重定向到默认页面.

任何人都可以帮我解决这个问题吗?

javascript php jquery redirect codeigniter

6
推荐指数
3
解决办法
2419
查看次数