刚开始使用CodeIgniter,我想导入一些旧的类用于新项目.但是,我不想过多地修改它们以适应CI的操作方式,我希望能够继续使用NetBeans的自动完成功能,这对CI来说效果不佳.
那么,在不使用库/模型加载机制的情况下,将自定义类和类文件加载到CodeIgniter的最佳方法是什么?
如果这是我应该能够快速找到的东西,我道歉,但我似乎无法找到我追求的东西.我看到的一切只是告诉我如何通过CI.
首先,我不介意CI有"编写更多代码"的态度,所以我并不关心这一点.现在我在CakePHP中相当不错(我有3到3年的时间),我认为它有一些最大的缺点就是它的速度,我想要传递给CI,但我需要知道一些事情......
我在CakePHP中最简单的应用程序(使用admin和表中的一些数据 - 多语言)大约需要0.2秒的代码处理.我想知道是否有人有时间为某个网站的Code Igniter.我很好奇是否值得学习.
我安装了代码点火器,起初看起来非常快,但我只是担心如果我不断添加组件,模型,助手和所有东西它会减慢(可能比蛋糕更多).所以..我实际上是在寻找一个CI网站的例子和它加载的确切时间......(至少2位小数).
如何使用Codeigniter php框架显示图像?
我想从images里面的文件夹中获取图像views.
我在其中一个viewsphp文件中使用了这段代码:
<img border="0" src="images/hed_05.jpg" width="61" height="133">
Run Code Online (Sandbox Code Playgroud)
但它没有用.
我使用codeigniter的会话类和在数据库中存储会话数据的选项.这是为每个用户检索会话的请求运行的选择查询的示例:
SELECT *
FROM (`ci_sessions`)
WHERE `session_id` = 'f7fd61f08a229kdu3093130a3da17e14'
AND `user_agent` = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.'
Run Code Online (Sandbox Code Playgroud)
以下是用户指南中定义的会话数据的表结构:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text DEFAULT '' NOT NULL,
PRIMARY KEY (session_id)
);
Run Code Online (Sandbox Code Playgroud)
我的理解是,每当你有一个想要返回单个结果的查询时,最好使用LIMIT 0,1,这样当数据库引擎找到所需的行时,它只返回而不是继续扫描整个表以获得更多匹配.因此,将此查询写成以下内容会更有效:
SELECT *
FROM (`ci_sessions`)
WHERE `session_id` = 'f7fd61f08a229kdu3093130a3da17e14'
AND `user_agent` = 'Mozilla/5.0 (Macintosh; Intel Mac …Run Code Online (Sandbox Code Playgroud) 我使用CodeIgniter 2.1.0,我想在数据库中插入数据后得到一条消息,如"您的信息已成功更新.".对于这项工作,我在CI_Controller中有以下功能:
function myCiInser(){
... Here is my query ...
//$data: this var is result query that is true
if($data){
$this -> session -> set_flashdata('message', 'Your information was successfully updated.');
redirect('url/myurl');
}
}
Run Code Online (Sandbox Code Playgroud)
我认为:
<?php
$message = $this->session->flashdata('message');
if($message){
echo '<div id="error_text">' . $message . '</div>';
}
//I test this : "echo $message;" but don't give output
?>
Run Code Online (Sandbox Code Playgroud)
但我不会在视野中给出消息,但redirect已完成并且正常工作.在表格ci_sessions列的数据库中user_data我有这个:
a:2:{s:9:"user_data"; s:0:""; s:19:"flash:new:message"; s:42:"您的信息已成功更新.";}
怎么解决这个问题?
更新:
我有以下错误(我使用chorme并通过Ctrl + Shift + ji获取此警报):
无法加载资源:服务器响应状态为404(未找到)
我修复它(现在我没有错误)但在显示消息中仍然是同样的问题.我该怎么办?
我想使用OpenID使用Google帐户实现登录,但我不知道如何启动此过程,因为我不知道如何执行此操作.那么是否有任何分步指南,以便我可以使用PHP中的CodeIgniter轻松实现Google帐户登录.
我发现只有这个,但我无法理解它,所以有任何指南或任何图书馆登录谷歌帐户?
我正在开始我的第一个CodeIgniter项目,并希望在开始之前得到一些建议.我对控制器和模型的名称如何工作有点困惑.
如果我希望我的公司页面的网址是http://example.com/Company/view
控制器需要被称为Company.php正确吗?在公司控制器内部,它看起来像这样:
public function viewAll()
{
$this->load->model('Companymodel');
$this->load->view('templates/header');
$data['result'] = $this->Companymodel->viewAll();
$this->load->view('company/viewAll', $data);
$this->load->view('templates/footer');
}
Run Code Online (Sandbox Code Playgroud)
好吧我在这里困惑,在上面的第4行:
$this->load->model('Companymodel');
Run Code Online (Sandbox Code Playgroud)
这个对公司模型页面的调用需要有第一个字母的资本,其余的是小写吗?
如果这是正确的,模型文件是否需要被称为Companymodel.php并放在application/models文件夹中?
调用控制器并对其进行建模是不好的做法
示例:Company.php并将其放在/ application/controller /中,然后将模型称为Company.php并将其放在应用程序/模型中,或者将模型称为Companymodel.php
我想我的最终问题是控制器和模型文件的命名约定,以及它们是否可以是大写.
我使用的jQuery插件嵌套与Codeigniter3创建5级网站,供用户一个很好的解决方案可以单调而下降到改变的菜单项的水平和位置的菜单.但是我的下面的功能只能创建第一级菜单,当我更改为菜单项的子级别(2,3,4,5)时,它对我不起作用.
问题我无法将菜单项从第一级更改为另一级.我不能逆转的菜单项回到父母,如果我已经改变了它是一个孩子的任何的父母.无论Jquery Nestable如何工作都会如此.
以下函数用于将菜单项更新为依赖于菜单列的数据库,如:id,parent_id,m_order.
此函数将通过foreach和array_key_exists检查$ List数组内部,如下所述:
而这个if($ parent_id!= $ item ['id']){...}将不会更新parent_id作为父项的当前id.
public function savelist() {
if ($this->input->post('list')) {
$this->do_update($this->input->post('list'));
}
}
public function do_update($list, $parent_id = 0, &$m_order = 0) {
foreach …Run Code Online (Sandbox Code Playgroud)如何在codeigniter 3.0.1中上传多个文件.stackoverflow中有类似的问题和解决方案,但不幸的是,它们没有帮助解决我面临的问题.
这是出现You did not select a file to upload在我当前代码中的错误消息
查看(addGallery)
<section>
<h2>Add Gallery</h2>
<?php echo form_open('Newsupload/gallery', ['id'=>'news', 'name'=>'news', 'method'=>'post','enctype'=>'multipart/form-data']) ?>
<div class="grp width-50">
<label for="name">Album Name</label>
<input type="text" name="name" id="name" value="" placeholder="">
</div>
<div class="grp width-100">
<div id="selectedFiles"></div>
<input type="file" id="files" name="files[]" multiple size="20"><br/>
</div>
<?php if (isset($error)) {
echo $error;
} ?>
<grp class="grp width-100">
<button>Add</button>
</grp>
</form>
</section>
Run Code Online (Sandbox Code Playgroud)
控制器(画廊)
public function gallery()
{
$this->load->library('upload');
$files = $_FILES;
$cpt = count($_FILES['files']['name']);
for($i=0; $i<$cpt; $i++)
{
$_FILES['files']['name']= …Run Code Online (Sandbox Code Playgroud) 我的应用程序是一个完整的AJAX网页,使用Codeigniter Framework和memcached会话处理程序.
有时,它会发送大量异步调用,如果会话必须重新生成其ID(以避免会话固定安全问题),会话cookie的更新速度不够快,而且由于会话ID过期,某些AJAX调用失败.
我走过了类似的线程(例如这个),但答案并没有真正解决我的问题,我无法禁用安全性,因为我的应用程序中只有AJAX调用.
尽管如此,我有一个想法,我希望在入侵Codeigniter会话处理程序类之前有一个意见:想法是管理2个同时会话ID一段时间,例如30秒.这将是最大请求执行时间.因此,在会话重新生成后,服务器仍将接受先前的会话ID,并切换到新的会话.使用相同的图片,如下所示:
codeigniter ×10
php ×8
ajax ×1
cakephp ×1
frameworks ×1
html ×1
jquery ×1
mysql ×1
openid ×1
performance ×1
session ×1