标签: codeigniter

SQL连接结果成为codeigniter中的对象

好的,有点背景,

  • 刚进入codeigniter
  • 不是sql和服务器端脚本的粉丝
  • 我知道加入的是什么
  • 我第一次有一个多对多的数据库

这是因为连接通常具有以下示例作为结果.但我想解析这个,而不必构建代码来忽略重复.这是一个3表连接样本.当我加入更多表时,重复值的问题会增加:

table1.authorid    table1.authorname    table2.books     table3.favorited
       1                 john           john's book 1        jean
       1                 john           john's book 1        joe
       1                 john           john's book 2        ken
       1                 john           john's book 2        mark
       2                 mark           mark's book 1        alice
       2                 mark           mark's book 1        ted
       2                 mark           mark's book 2        sarah
       2                 mark           mark's book 2        denise
Run Code Online (Sandbox Code Playgroud)

在codeigniter(或普通PHP)中是否有一种方法可以获取此数组形式并将其转换为类似json(并像json一样解析)

$result = [
    {
        'authorid':1,
        'authorname':'john',
        'books':['john's book1','john's book2'],
        'favorited':['jean','joe','ken','mark']
    },
    {
        'authorid':2,
        'authorname':'mark',
        'books':['mark's book1','mark's book2'],
        'favorited':['alice','ted','sarah','denise']
    }
]
Run Code Online (Sandbox Code Playgroud)

更新 …

php mysql json codeigniter

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

而不是Form动作和方法

<?php echo validation_errors(); ?>

<?php echo form_open('form'); ?>
    <input type="text" name="something" />
    <input type="submit" value="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

我发现没有"行动"和"方法"

<form action="/application/controler/somepage.php" method="POST">
</form>
Run Code Online (Sandbox Code Playgroud)

在按下提交按钮后,我想在文本框中输入值.我怎样才能像前者一样(通过POST或GET获取值)?

另外,如果我想获取URL中传递的值 http://localhost/index.php/something?value=75&today=Wed

即75和Wed,例如.

php codeigniter

6
推荐指数
3
解决办法
9333
查看次数

在数据库驱动的CodeIgniter Web应用程序中进行单元测试

CodeIgniter内置了一个Unit Testing类,我非常想使用它.然而,几乎所有的功能,我想通过添加记录,删除记录,等我将如何,例如,写了"创建用户"功能测试,而每次实际创建用户测试与数据库交互运行测试?

在一些进一步的研究,看来我需要使用外部服务Mock对象如数据库等,我一直没能找到很多的文档关于如何做的方式,除了这一个论坛主题: HTTP: //codeigniter.com/forums/viewthread/106737

有没有实际的文件?

database testing unit-testing codeigniter

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

Codeigniter中的会话如何工作

我想弄清楚会话如何在Codeigniter中工作.阅读在线手册,我看到以下内容:

如果会话数据不存在(或者它已过期),则会创建一个新会话并将其保存在cookie中.如果会话确实存在,则会更新其信息并更新cookie.每次更新时,都会重新生成session_id.

和

注意:默认情况下,会话cookie每五分钟更新一次,以减少处理器负载.如果您反复重新加载页面,您会注意到"上次活动"时间仅在自上次写入cookie后经过五分钟或更长时间后才会更新.可以通过更改system/config/config.php文件中的$ config ['sess_time_to_update']行来配置此时间.

问题:

  1. 如果加载了具有会话类的页面时存在会话,则会更新哪些信息?这是会话ID存储在cookie中,还是会话数据本身存储在数据库中?
  2. 会话cookie仅每5分钟更新一次.如果用户在5分钟内从页面A转到页面B,这需要添加新的会话数据,该怎么办?逻辑上会话数据应该更新,所以我想我错误地理解了这一行...在这种情况下,我猜测会话cookie每5分钟获得一个新的会话ID.

任何澄清都会有所帮助!

php cookies session codeigniter

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

如何配置分页codeigniter?

我试图用CodeIgniter进行分页,根据Codeigniter的手册应该这么简单,即使在这个例子中也是这样的

«首先<1 2 3 4 5>最后»

$config['total_rows'] = $this->searchdesc_model->queryallrows();
$config['per_page'] = '10';
$config['uri_segment'] =4;
$config['full_tag_open'] = '<p>';
$config['full_tag_close'] = '</p>';
$config['cur_tag_open'] = '<b>';
$config['cur_tag_close'] = '</b>';
$config['first_link'] = 'First';
$config['last_link'] = 'Last';
$config['last_tag_open'] = '<p>';
$config['last_tag_close'] = '</p>'

$this->load->library('Company_Creation');
Run Code Online (Sandbox Code Playgroud)

在视图中我只称它为pagination-> create_links(); ?>(或者当我从控制器调用它时,我通过视图发送它,但我只能得到它

1 2 3>

并且没有办法使它看起来像exmaple,可能听起来如此虚拟但是,任何人都可以帮助我吗?或者有类似的问题?

谢谢

编辑1

$config['total_rows'] = $this->searchdesc_model->queryallrows();
$config['per_page'] = '5';
$config['uri_segment'] =4;
$config['full_tag_open'] = '<p>';
$config['full_tag_close'] = '</p>';
$config['cur_tag_open'] = '<b>';
$config['cur_tag_close'] = '</b>';
$config['first_link'] = ' First';
$config['last_link'] = ' Last';
$config['last_tag_open'] = '<p>';
$config['last_tag_close'] …
Run Code Online (Sandbox Code Playgroud)

php search pagination codeigniter

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

Codeigniter:使用PDO而不是mysql

在Codeigniter实现PDO的使用之前,是否有办法将其破解为稳定且安全的 CI ?目前,而是采用了数据库驱动程序,我使用的,而不是一个模型,它有我所有的PDO这样的代码prepare,fetch,execute在这等.你们其他人在做什么?

php pdo codeigniter

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

使用Active Record在CodeIgniter中加入SQL

我试图绕过这个,但我似乎是围成一圈.我正在尝试逐个列出用户主题,下面是属于该特定主题的引号.如果这是有道理的.

我有3个表,如下所示:

[USERS] user_id用户名

[TOPICS] topic_id user_id topic_name

[QUOTES] quote_id topic_id quote_name

我希望能够在我看来做这样的事情:

用户名:托马斯

主题1:无论如何

行情:一个引用,另一个引用和第三个引用,都属于主题1.

主题2:托马斯的另一个话题

行情:是的,好的,谢谢,我喜欢Stack Overflow,这些引用属于主题2.

但我不能让它工作,我一直在尝试一切,包括奇怪的东西,如:

public function get_quotes()
{

    $this->db->select('*');
    $this->db->from('topics');
    $this->db->join('quotes', 'topic_id = quote_id');

    $query = $this->db->get();

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

这有点奇怪吗,我应该尝试使用'where'代替吗?就像是:

$this->db->where('user', $user_id);
$this->db->where('topic', $topic_id);
$this->db->where('quote', $quote_id);
Run Code Online (Sandbox Code Playgroud)

我真的很感激我能得到的任何帮助,或只是一个手指指向正确的方向!

php activerecord codeigniter

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

为什么CodeIgniter重定向不会删除URL末尾的散列/磅(#)?

我不确定这是否真的是CodeIgniter问题或浏览器问题.这种情况发生在Chrome中,但不适用于Safari.但是,我认为它不应该在任何浏览器中发生.

如果你去包含的example.com/foo#

redirect('bar');
Run Code Online (Sandbox Code Playgroud)

你期望最终在example.com/bar.相反,您最终会访问example.com/bar#.我不明白为什么哈希不会消失.这没有道理.到底是怎么回事?

codeigniter

6
推荐指数
2
解决办法
1225
查看次数

如何使用Codeigniter活动记录按日期分组?

我想按日期将数据分组到我的博客表中.

我的数据库中有一个datetime字段,我将用它按月和年分组数据.(例如2012-01-23 17:25:18)

我已将以下代码添加到我的模型中,尝试按月和年分组数据(如存档)

function get_archive_links(){

        $this->db->order_by('date','desc');
        $this->db->group_by(Month('date'), Year('date')); 
        $query = $this->db->get('blog'); 

    foreach ($query->result() as $row) {
        $data[] = array(
            'id' => $row->id,
            'date' => $row->date
        );
    }

    return $data;
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误: Fatal error: Call to undefined function Month()

希望结果如下:

  • 2012年2月
  • 2012年1月
  • 2012年12月

datetime group-by codeigniter date

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

如何使用codeigniter中的View发送包含内容的电子邮件

我想从我的应用程序向用户发送一封电子邮件,其中包含从视图中加载的电子邮件的内容 .这是我到目前为止尝试过的代码:

$toemail = "user@email.id";

$subject = "Mail Subject is here";
$mesg = $this->load->view('template/email');

$this->load->library('email');

$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['mailtype'] = 'html';

$this->email->initialize($config);

$this->email->to($toemail);
$this->email->from($fromemail, "Title");
$this->email->subject($subject);
$this->email->message($mesg);
$mail = $this->email->send();
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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