我在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的保留名称列表,它是不在那里.
我知道我可以通过调用其他东西解决问题,但我真的希望我的控制器被称为"列表",如果可能的话.任何想法,或洞察为什么会发生这种情况?
谢谢,
麻辣
我一直在阅读之前提出的几个问题,我没有遇到过一个以"黑白"为我回答问题的问题!所以,如果这是重复的,请道歉.问题可能类似于询问"一根绳子有多长",但请耐心等待!
对于registernation系统,我有一个用户模型,其功能如下:
上述用户模型处理一个表.MySQL数据库中的users表.
你可以猜出每个函数的功能但是这个足够粗糙吗?我的意思是我的模型应该包含更广泛的方法,例如:
我在表中传递的内容和要删除,添加或更新的记录的唯一标识符?
我正在使用codeigniter,但我对如何在纯MVC框架中完成任务感兴趣.
如果这个问题太挑剔,我道歉.
谢谢大家
我是单元测试的新手,所以这可能是一个有点愚蠢的问题.想象一下,我们有一个简单的模型方法.
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,所以我正在寻找的例子,最好用它来编写.谢谢.
你如何使用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中进行基本调试?
任何人都可以分享关于调试PHP应用程序的真正恐怖故事(或者(甚至更好)PHP框架如Codeigniter和Wordpress)?
我喜欢听到真实的体验,以防我在学习PHP的过程中遇到类似的情况.
CodeIgniter是否提供调试模式,例如,在访问无效URL时?
Ruby on Rails确实在给出错误的URL时显示调试消息,并且控制器无法使用路由映射解析它.如何在CodeIgniter中启用此类调试消息?
探查者......
$this->output->enable_profiler(TRUE);
Run Code Online (Sandbox Code Playgroud)
...仅影响单个班级,但不影响所有路线.因此,在没有实际调试器模式的情况下进行调试有点困难.:-)
我看了这个链接: -
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功能中指定分钟的目的是什么?
提前致谢 :)
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并扩展了一个完全为此目的而创建的模块.现在,我需要做的就是在配置数组中指定我的菜单项,并突出显示自动发生.该模块在这里.
我正在使用我创建的配置文件来存储用户.这肯定不是用于配置的配置,但它是一个非常小的应用程序,我认为这将是一个很好的解决方案.
我的数组看起来像这样:
$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而不是数组....但这也不起作用.请帮忙?
谢谢
当用户尝试通过链接访问我们的网站时(例如访问www.website.com/privatepage),他们会被重定向到登录页面.登录后,我们希望将它们重定向到预期的网址 - 您是如何做到这一点的?
此外,我们还有一个用例,用户从主页登录,或者直接进入没有预期URL的登录页面 - 在这种情况下,我们想将它们重定向到默认页面.
任何人都可以帮我解决这个问题吗?
codeigniter ×10
php ×10
caching ×1
controller ×1
debugging ×1
email ×1
frameworks ×1
html ×1
javascript ×1
jquery ×1
models ×1
redirect ×1
unit-testing ×1
wordpress ×1