嘿,当我加载一个简单的模型时,不确定CodeIgniter为什么给我一个空白页面.我正在打破代码,倒退,我无法弄清楚什么是破坏.这是控制器:
class Leads extends Controller {
function Leads() {
parent::Controller();
$this->load->scaffolding('leads');
}
function index() {
$data = array( 'title' => 'Lead Management' );
$this->load->view('html_head', $data);
$this->load->view('leads/home');
$this->load->view('html_foot');
}
function view() {
$this->load->model('Leads');
$this->load->view('html_head');
$this->load->view('leads/view');
$this->load->view('html_foot');
}
}
Run Code Online (Sandbox Code Playgroud)
这是模型:
class Leads extends Model {
function Leads() {
parent::Model();
}
Run Code Online (Sandbox Code Playgroud)
}
我没有在/ view上看到白页的唯一方法是我注释掉模型的加载.我完全不知道我做错了什么,我正在复制示例和结构,直接在CI网站上.
在CodeIgniter视图中检查当前URI段的最佳方法是什么?我想要做的是使用当前的URI段[即$ this-> uri-> segment(1)],以突出显示导航栏上的当前页面.
我想到的最好的就是去做
$data['current_uri'] = $this->uri->segment(1);
$this->load->view('header', $data);
Run Code Online (Sandbox Code Playgroud)
在我的每个控制器中,然后在header.php文件中,我检查$ current_uri变量以确定应该突出显示导航的哪个部分.如你所知,这是一种非常繁琐的方式,但我却失去了一种更好的方法.
甚至可以扩展默认的Controller类来传递当前的URI段,但我不确定这是否可行,甚至不知道如何去做.
如何使用此代码在codeigniter中获取多个复选框值
<input type="checkbox" name="assign[]" value="Keyur"> Keyur<br/>
<input type="checkbox" name="assign[]" value="Ritesh"> Ritesh<br/>
<input type="checkbox" name="assign[]" value="Saurabh"> Saurabh<br/>
<input type="checkbox" name="assign[]" value="Maulik"> Maulik<br/>
Run Code Online (Sandbox Code Playgroud)
在控制器
$data1 = $this->input->post('assign[]');
Run Code Online (Sandbox Code Playgroud)
我这样做,但不能得到价值,我犯错误????
我在这里遇到了一个问题,当我尝试使用ajax(POST)发布内容时,我一直收到错误.我知道CSRF给了我这些问题,并且我一直在尝试寻找解决方案.但是,我希望有人可以帮助我!
这是我一直得到的错误(来自谷歌浏览器检查员),
*无法加载资源:服务器响应状态为500(内部服务器错误)XHR已完成加载:"http:// localhost/woho/ajax/images".*
PHP(控制器)
class Ajax extends CI_Controller {
function images() {
echo 'Hello World';
}
}
Run Code Online (Sandbox Code Playgroud)
使用Javascript
var ID = $(".imageWrap:last").attr("id");
var baseurl = "http://localhost/woho/";
var doScroll = 1;
var cct = $.cookie('csrf_cookie_name');
if (location.href == baseurl) {
$(window).scroll(function(){
if ($(window).scrollTop() > $('body').height() / 2) {
if(doScroll == 1) {
$.post(baseurl + 'ajax/images',{'id' : ID, 'csrf_token_name': cct}, function(data) {
alert(data);
$("#wrapper_content").append(data);
ID++;
});
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的CCT var来自javascript给了我正确的令牌或"哈希"但是当javascript发送ajax请求时,codeigniter返回一个错误,如,
一个错误遇到您所请求是不允许的行动.
我怎样才能解决这个问题?我是否需要在控制器中验证CSRF令牌或其他内容?
我正在使用Codeigniter 2.0.3
我将为我的最终Web开发课程项目构建一个CMS,并且我的老师在MVC系统中创建了它的挑战,现在,我将使用CodeIgniter.
因此,我想知道如何组织文件/文件夹结构.
我将使用一个简单的模板系统: - 现在我有一个自动加载的templates.php配置文件,并说明所选模板的名称,以及它的绝对路径. - templates文件夹位于views文件夹中(这是最正确的方法吗?) - 现在我有一些问题,通过视图中的文件访问.css文件,从我读过的人通常将所有文件放在应用程序文件夹之外.
你通常怎么做?而且,看到我正在建设什么,你能给我什么建议?视图不应包含模板中的所有内容吗?(包括模板文件夹中的CSS)
谢谢.
(我正在使用Code Ignitor 2.1.0)
编辑:
现在,在构建了所有文件和文件夹之后,我处于两难境地.我在constants.php中添加了以下内容
<!-- language: lang-php -->
$config['selected_template'] = 'oceania';
$config['template_abs_path'] = 'assets/templates/'.$config['selected_template'];
define('IMAGES_PATH', $config['template_abs_path'].'/img/' );
define('CSS_PATH', $config['template_abs_path'].'/css/' );
define('SCRIPTS_PATH', $config['template_abs_path'].'/js/' );
Run Code Online (Sandbox Code Playgroud)
(如果我没有定义selected_template和template_abs_path,我可以在常量中使用它们)
我将它们包含在HTML中,如下所示:
<!-- language: lang-html -->
<link rel="stylesheet" type="text/css" href="<?=CSS_PATH;?>style.css" />
Run Code Online (Sandbox Code Playgroud)
但是现在,我试图获得一个存储在配置中的标题,但我不能这样做,因为我需要所有这些变量都在我之前创建的其他templates.php文件中,否则它将无法识别我的变量.(我有模板自动加载)
templates.php
<!-- language: lang-php -->
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config['title'] = 'Title of the website';
$config['selected_template'] = 'oceania';
$config['template_abs_path'] = 'templates/'.$config['selected_template'];
Run Code Online (Sandbox Code Playgroud)
header.php文件
<div id="logo">
<h1><a href="#"><?=$this->config->item('title');?></a></h1>
</div> …Run Code Online (Sandbox Code Playgroud) 我一直在研究CodeIgniter附带的用户指南.我对这个dbutil()方法很感兴趣.特别是以下代码行:
// Load the DB utility class
$this->load->dbutil();
// Backup your entire database and assign it to a variable
$backup =& $this->dbutil->backup();
// Load the file helper and write the file to your server
$this->load->helper('file');
write_file('/path/to/mybackup.gz', $backup);
// Load the download helper and send the file to your desktop
$this->load->helper('download');
force_download('mybackup.gz', $backup);
Run Code Online (Sandbox Code Playgroud)
它应该备份当前加载的MySQL数据库.但不幸的是,它不起作用,我收到以下消息:
遇到PHP错误
严重性:注意
消息:未定义的属性:CI_Loader :: $ dbutil
文件名:views/view.php
行号:10
致命错误:在第10行的C:\ xampp\htdocs\CodeIgniter\application\views\view.php中的非对象上调用成员函数backup()
我在这里错过了什么?任何帮助将非常感激.
我正在尝试使用代码点火器制作一些基本的Web应用程序,我已经意识到我有很多元素调用控制器方法从相应的模型中获取数据,我试图找出最好的方法来命名这些方法做同样的事.
举个例子,假设我想抓住我网站上的所有用户.我的控制器中有一个名为get_users()的方法,然后该方法将加载并调用我的模型中名为fetch_users()的方法,该方法将从数据库中获取用户并将result_array返回给控制器,然后从那里返回到视图.
这似乎有点多余(调用get_users()调用另一个名为fetch_users()的函数)
我只是想知道这是否是进行这种行动的唯一方法,或者是否有另一种"更清洁"的方法.
希望这是有道理的.
谢谢!
由于以下原因,我需要在codeigniter中设置动态基本URL.
我写了一个简单的查询来搜索数据库中的关键字.
$keyword = "keyword sample";
$keyword = str_replace(" ", "%", $keyword);
$this->db->select('*')->from('table')
->like('column', "%".$keyword."%")->get();
Run Code Online (Sandbox Code Playgroud)
现在Codeigniter生成的查询是这样的:
SELECT * FROM (`table`) WHERE `column` LIKE '%keyword\%sample%'
Run Code Online (Sandbox Code Playgroud)
\查询中的尾随在哪里?这样做会进行错误的搜索,而不会返回db中实际存在的数据.我已经检查了所有内容,但我编写的代码似乎没有任何错误.请帮忙!
我有3个表与那些相关的领域
posts(id,title)
标签 (id,name)
tags_map (id,id_post,id_tag)
我这样想:
$this->db->select('posts.*,tags.name');
$this->db->from('posts');
$this->db->join('tags_map', 'tags.id_post = posts.id');
$this->db->join('tags', 'tags.id = tags_map.id_tag');
$this->db->group_by('posts.id'); // I can comment this line and same result
Run Code Online (Sandbox Code Playgroud)
这看起来像,但即使是多个tags_map记录,它只返回一个,
如何在一个查询中返回所有内容?
-编辑-
我有点解决它,但需要PHP处理
$this->db->select('posts.*,group_concat(tags.name) as thetags');
Run Code Online (Sandbox Code Playgroud)
这将重新启动字段thethags ='tag1,tag2,tag3'
但我想在标签表上获得其他文件..
并且,例如:
$this->db->select('posts.*,group_concat(tags.name) as 'thetags',group_concat(tags.relevance) as 'therelevances');
我不确定我是否可以信任订单?
codeigniter ×10
php ×9
mysql ×2
activerecord ×1
ajax ×1
css ×1
database ×1
javascript ×1
join ×1
jquery ×1