我是codeigniter的新手,我一直在努力弄清楚这条线路上出了什么问题
这是我的控制器
class Product extends CI_Controller{
function index(){
$this->load->model('product_model');
$data['products'] = $this->product_model->get_all_products();
$this->load->view('all_products', $data);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的模特
class Product_model extends CI_Model {
function get_all_products(){
$query = $this->db->get('products');
if($query->num_rows() > 0){
foreach($query->result() as $row){
$data[] = $row;
}
return $data;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的错误
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Product::$db
Filename: core/Model.php
Line Number: 50
Fatal error: Call to a member function get() on a non-object in /Users/matt/Sites/ci/application/models/product_model.php on line 9el.php on line 6
Run Code Online (Sandbox Code Playgroud)
错误就在这一行
$query …Run Code Online (Sandbox Code Playgroud) 我需要有可以用作codeigniter的memcache的库.我需要做的是在用户角色的基础上从DB中提取菜单,然后将菜单存储在缓存中.如果它具有相同的角色(不调用DB),则该想法是向另一个用户显示确切的菜单.我有一个单独的菜单视图(标题),并在我的每个页面(视图)中包含它.这里需要注意的是每次在请求新页面(视图)时执行控制器.
我刚刚使用了一个库https://github.com/tomschlick/memcached-library,在这种情况下这对我不起作用.当我调用新页面时,标题视图会为memcache的未定义的get函数抛出一个错误(因为我通过memcache从头部获取数据).
是否有任何可靠的库或方法来完成任务?
谢谢
我使用CodeIgniter创建了一个webapp.有几个地方我在应用程序中使用ajax.
我想知道是否有一种方法可以阻止对ajax控制器的直接访问和查询,并且只允许处理来自页面的合法ajax请求.
谢谢.
如上所述:http: //codeigniter.com/user_guide/general/cli.html
像这样的页面:http: //www.example.com/myController/myFunc/myParam
可以在命令行上运行:
php index.php myController myFunc myParam
Run Code Online (Sandbox Code Playgroud)
我的codeignitor设置有一些文件夹来分组控制器,让我们这样说:
myFolder -> myPageController
-> myAdminController
Run Code Online (Sandbox Code Playgroud)
所以,网址变成:
http://www.example.com/myFolder/myController/myFunc/myParam
如何在CLI上调用相同的东西?就像是 :
php index.php "myFolder/myController" myFunc myParam
Run Code Online (Sandbox Code Playgroud)
似乎没有用.
我试图在我的控制器中显示我的数据库查询结果,但我不知道该怎么做.你能告诉我吗?
调节器
function get_name($id){
$this->load->model('mod_names');
$data['records']=$this->mod_names->profile($id);
// I want to display the the query result here
// like this: echo $row ['full_name'];
}
Run Code Online (Sandbox Code Playgroud)
我的模特
function profile($id)
{
$this->db->select('*');
$this->db->from('names');
$this->db->where('id', $id);
$query = $this->db->get();
if ($query->num_rows() > 0)
{ return $query->row_array();
}
else {return NULL;}
}
Run Code Online (Sandbox Code Playgroud) 我有一个表单,我可以添加一个新的类别项目.
<form method="POST" action="backend/categories/form">
<input type="text" name="title" value="" />
<button type="submit">Save</button>
<button type="submit">Save and add new</button>
</form>
Run Code Online (Sandbox Code Playgroud)
我想要做的是,如果我点击Save按钮,它将处理控制器中的一个功能并自动重定向到上一页(类别列表页面),但每当我点击它Save and add new,它应该处理该功能但重新加载同一页面没有重定向到控制器功能中定义的页面.
控制器:
function form($id){
// Process the form
// ...
// Redirect to the category list page
redirect($this->config->item('backend_folder').'/categories');
}
Run Code Online (Sandbox Code Playgroud)
有没有使用Javascript实现它的任何提示?
我确信这是100%错误所以,如果有人能纠正我,我将不胜感激.但是在'index'页面上,变量$venuedeets返回一个当前为C的随机大写字母.
关于事件函数 - 我是否需要设置域,如果是这样,我如何将其设置为base_url,也可以添加自定义值并将它们附加到变量,如venuename => $venue.
$cookie = array(
'name' => 'venue_details',
'value' => 'Hello',
'expire' => time()+86500,
'path' => '/',
);
$this->input->set_cookie($cookie);
Run Code Online (Sandbox Code Playgroud)
指数
$this->load->helper('cookie');
$this->input->cookie('venue_details', TRUE);
$cookie2 = get_cookie('venue_details');
$data['venuedeets'] = $cookie2['value'];
Run Code Online (Sandbox Code Playgroud)
谢谢.
我已经看到了几个不同的帖子,但它们似乎都不适合我.
我有一个扩展CI_Model的类:
class Users_Model extends CI_Model {
public function __construct(){
parent::__construct();
}
Run Code Online (Sandbox Code Playgroud)
然后:
class Students_Model extends Users_Model {
private $_students;
public function __construct(){
parent::__construct();
$this->_students = $this->get_students();
}
Run Code Online (Sandbox Code Playgroud)
但是,然后我收到此错误消息:
PHP Fatal error: Class 'Users_Model' not found in /Users/rosswilson/Localhost/thedrumrooms/dreamweaver/ci/application/models/students_model.php
Run Code Online (Sandbox Code Playgroud)
我曾经require_once在扩展类中包含该文件,它可以工作.这是最好的做法/正确的方法吗?
谢谢.
我有一个每天大约有2000名访问者的网站,该网站被各种搜索引擎机器人发送垃圾邮件.我尝试将会话过期时间减少到20分钟,但仍然有很多mysql_slow_queries.所以我在查看文章,Google crawler,cron和codeigniter会话,完全忽略会话表中的机器人,但他们的方式是,忽略了IPs,但是当我分析数据库时,我看到同样的机器人使用不同IPs.我注意到机器人每次都使用相同的用户代理,因此忽略用户代理是否安全?可以采取哪些必要步骤来避免慢速查询并忽略机器人?
一些SLOW查询
INSERT INTO `ci_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`, `user_data`) VALUES ('619bfd8ef4171480645feb17a15323ee', '219.92.135.144', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15', 1384875135, '')
INSERT INTO `ci_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`, `user_data`) VALUES ('fa48b5168b8e84d90dc9b87ce65dfc89', '66.249.74.112', 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', 1384875522, '')
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简单的报告系统,它可以输出HTML或导出到Excel.我已经通过Codeigniter视图成功创建了一个HTML表,但我想知道是否有任何方法可以重新使用该视图来创建Excel导出,而不是手动执行,因为我必须更新每当我想对报告进行更改时,它会在两个地方出现.
任何建议表示赞赏
谢谢.
codeigniter-2 ×10
codeigniter ×7
php ×6
ajax ×1
bots ×1
cookies ×1
memcached ×1
phpexcel ×1
session ×1