标签: codeigniter

CodeIgniter检测是否使用了默认控制器路由

在CodeIgniter中,有没有办法知道用户是否被发送到默认控制器,因为路由将它们发送到那里,或者因为用户实际在URL栏中输入了该控制器.

换句话说,---/home和---.com都可以将你发送到'home'控制器,因为你已经设置好了

$route['default_controller'] = 'home';

但只有---.com/会调用CI来获取"default_controller"所以,我该如何检测到这个?如果只有一个布尔函数可以告诉我这个.

php codeigniter codeigniter-routing

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

未定义的属性:CI_DB_mysql_result :: $ result

我是codeigniter编程的新手.当我尝试连接数据库并从表中检索数据时,我发现错误如:

A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI_DB_mysql_result::$result
Filename: models/haii.php
Line Number: 15.

A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/getquery.php
Line Number: 2
Run Code Online (Sandbox Code Playgroud)

我使用此代码使用codeigniter连接数据库:

控制器:

<?php
class product extends CI_Controller
{
    function __construct()
    {
    }
    function getall()
    {
        $this->load->model('haii');
        $data['query']=$this->haii->you();
        $this->load->view('getquery',$data);
    }
}
?>      
Run Code Online (Sandbox Code Playgroud)

模型:

<?php
class haii extends CI_Model
{
    function __construct()
    {
        parent::__construct();
        $this->load->database();
    }
    function you()
    {
        $query=$this->db->get('member');
        return $query->result;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

视图:

<?php …
Run Code Online (Sandbox Code Playgroud)

php mysql codeigniter

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

Codeigniter Active Record中的多个Select Count SQL查询

我喜欢将以下MySQL查询转换为Codeigniter Active Record Queries.

以下是MySQL:

select brand_id,name,(select count(*) from items where brand_id = b.brand_id) as itemc, (select count(*) from models where brand_id = b.brand_id) as modelc from brands as b
Run Code Online (Sandbox Code Playgroud)

Codeigniter:

$this->db->limit($perpage,$page);
    $query = 'select brand_id,name,(select count(*) from items where brand_id = b.brand_id) as itemc, (select count(*) from models where brand_id = b.brand_id) as modelc from brands as b limit '.$perpage.' offset '.$page.'';
    $query = $this->db->query($query);
    $query = $query->result();
    return $query;
Run Code Online (Sandbox Code Playgroud)

请帮我将以上代码转换为Codeigniter Active Record.

php mysql codeigniter

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

CodeIgniter:表单验证后用uri段加载视图?

在我的codeigniter网站上,我有一个管理员可以为其创建内容的用户列表.为用户创建新内容时,网址为example.com/content/new/ 5.5是正在为其创建内容的用户的ID.当我提交表单并且form_validation失败时,我重新加载视图,但问题是它丢失了具有ID号的URL上的最后一段.有没有办法我可以用错误重新加载视图,并将该ID保存在网址中?

这是我的代码......

if ($this->form_validation->run() == FALSE){
    $this->load->view('create_content', $data); //reload if validation fails        
} else { 
    //prepare data for the database here
}
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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

php包含在LAMP服务器中包含父文件夹的功能

我正在使用Windows 7中的wamp&codeigniter在php中开发一个MVC应用程序.该应用程序没有任何问题.

我是linux和ubuntu的新手.

但我需要在ubuntu linux机器上托管这个.我已经<php include ('/../footer.php); ?>在Windows wamp中使用它正在工作.

一旦我上传到ubuntu灯.我越来越include ('/../footer.php) failed to open stream

我尝试在网上搜索,但无法得到解决方案.

怎么解决这个问题.

php ubuntu lamp codeigniter

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

Codeigniter:多次使用$ this-> load-> database()会导致多个连接?

我正在考虑从自动加载文件中删除数据库库.我正在缓存页面上的所有内容,所以我不需要每次都连接到数据库,如果我有CI连接到数据库,我认为这是浪费速度.

我的问题现在是:如果我用例如在$this->load->database()没有参数的MY_Model中加载数据库(它们来自配置文件),是否会为我在控制器中使用的每个模型建立新连接?

或者它会像只加载一次的助手一样?

php database connection performance codeigniter

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

CodeIgniter视图加载不按顺序加载?

我在CodeIgniter中有一个Controller,代码如下:

$this->load->view("first");
echo "LOL";
$this->load->view("second");
Run Code Online (Sandbox Code Playgroud)

但奇怪的是,当呈现页面时,HTML是:

LOL
<div id="firstView"></div>
<div id="secondView"></div>
Run Code Online (Sandbox Code Playgroud)

我不知道是什么导致这些陈述的重新排序.有什么建议?我可能忽视了什么吗?

php templates codeigniter

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

表单提交 - 防止页面重新加载jQuery

我正在构建一个联系表单,我想通过ajax提交数据并通过相同的方式显示结果.但只要用户点击提交按钮,该页面就会自动提交.我也使用过jquery的preventDefault和stopPropogation.但它仍然无法正常工作.我是jQuery的新手,我可能会遗漏一些小东西.这是代码:

形成

<form action="#" method="post" accept-charset="utf-8" name="contactform" id="contactform">
        <p>Name<br/><input type="text" name="cname" value="" id="cname" required /></p><br/>
        <p>Email<br/><input type="email" name="cemail" value="" id="cemail" required /></p><br/>
        <p>Message<br/><textarea name="cmessage" cols="40" rows="10" id="cmessage" required ></textarea></p>

        //Re-captcha code here
        <p><input type="submit" name="contact_submit" value="Submit" id="contact_submit"  /></p>
        </form> 

        <br />
        <div id="result"></div>
Run Code Online (Sandbox Code Playgroud)

脚本

$(document).ready( function(){
$("#contact_submit").click( function(e){

   e.preventDefault();
   e.stopPropagation();




 });

 $("#result").html('');

 $("#contactform").validate();


 });
Run Code Online (Sandbox Code Playgroud)

我已经包含了jQuery Validation Plugin,它也没有用.

html php jquery codeigniter

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

CodeIgniter:使用数据库表数据填充选择输入/表单下拉列表

我正在尝试使用表中的数据填充选择输入/表单下拉列表.

HTML

<select id="room_type" name="inputInfo" >
    <option value="<?php echo set_value('room_type', '$data_room_type'); ?>"></option>
</select>
Run Code Online (Sandbox Code Playgroud)

模型:

function get_room_details($data_room_type) { // line 19
    $data_room_type = array();
    $this->db->select('room_type', 'default_price');
    $this->db->from('room_type');
    $query = $this->db->get();

    if ($query->num_rows() > 0) {
        foreach ($query->result_array() as $row) {
            $data_room_type[] = $row;
        }
    }
    return $data_room_type;
}
Run Code Online (Sandbox Code Playgroud)

控制器:

function index() {
    $this->load->view('/main/new_reservation');
    $this->load->model('reservations_model');
    $this->reservations_model->get_room_details($data_room_type);
}
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

错误

遇到PHP错误

严重性:注意

消息:未定义的变量:data_room_type

文件名:controllers/reservations.php

行号:8

第8行是::

$this->reservations_model->get_room_details($data_room_type);
Run Code Online (Sandbox Code Playgroud)

php mysql codeigniter

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

Codeigniter ActiveRecord,按类别计算记录

也许我现在想不起来.但是我想要弄清楚的是如何在数据库中返回一组结果,即每个类别的行数.无需基于每个类别进行查询.

这种情况下的类别是州.我有90,000行数据,其中50种不同的状态将数据分开.有没有办法创建与每个州相关的计数?

我想说group_by或者其他什么,但老实说,我现在想不起来.想法?

member | comment | state | dataset
----------------------------------
000    |something| CA    | an_object_of_data
000    |something| CA    | an_object_of_data
000    |something| CA    | an_object_of_data
000    |something| NY    | an_object_of_data
000    |something| NY    | an_object_of_data
000    |something| CA    | an_object_of_data
000    |something| CT    | an_object_of_data
000    |something| CA    | an_object_of_data
Run Code Online (Sandbox Code Playgroud)

以上是各种db表的示例.想象一下,有90k行甚至更多的东西state.

如果我可以通过对结果或某事进行分组来获得返回的计数,即:"CA = 4","CT = 1","NY = 2"

php mysql activerecord codeigniter

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