标签: codeigniter

Smarty集成到Code Igniter框架中

一点背景信息:
我最近一直在看几个PHP框架,它归结为两个.Zend Framework或CodeIgniter.

我更喜欢CodeIgniter,因为它设计简单.这是非常裸露的骨头,它只是保持简单.我不喜欢的是弱模板系统.模板系统对我很重要,因为我将与另一位设计师合作.能够给他一个好的模板系统是一个很大的优点.

Zend是第二选择,因为内置了更好的模板系统.与CodeIgniter相比,Zend是一种不同的野兽.它强调"模块之间的松散耦合",但它是一个更大的框架.我不喜欢觉得我有很多东西在我从不使用的引擎盖下运行.在我看来,这是不必要的开销,所以我考虑将模板系统放入CodeIgniter:Smarty.

问题:将Smarty集成到CodeIgniter的过程有多容易/困难?从我最初的CodeIgniter文档扫描中,我可以看到框架的布局很容易理解,我预计没有问题.我想知道是否有人以前曾经使用过它,因此我知道你所经历的任何"陷阱"会使这更难以实现或不可能实现.我也想知道这是否是一件好事.CodeIgniter中的模板系统是否足以正常使用?除了Smarty之外,还有其他适用于CodeIgniter的模板模块吗?我最好使用Zend Framework吗?这个轮子是在这里发明的吗?谢谢您的帮助!

zend-framework codeigniter smarty

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

PHP/codeigniter - 使用exit()

我有几页需要登录,所以链接到这些页面的所有控制器都以

$this->checkSession();
//...rest of the code
Run Code Online (Sandbox Code Playgroud)

CheckSession应验证会话是否仍然有效,否则显示消息并停止执行控制器中的其余代码:

function checkSession()
{
    if (!$this->session->userdata('is_logged_in'))
    {
        //the session has expired!
        $data['main'] = 'confirmation_message';
        $data['title'] = "Session expired";
        $this->load->vars($data);
        $this->load->view('template');
        exit();
    }
}
Run Code Online (Sandbox Code Playgroud)

.我期待这些指令按顺序发生,但我只得到一个空白页面.如何确保只在加载所有视图后才执行exit()?

php codeigniter

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

如何在CodeIgniter模型中使用ON DUPLICATE KEY UPDATE?

我有一个CodeIgniter/PHP模型,我想将一些数据插入数据库.

但是,我在"原始"SQL查询中设置了这个集合:

ON DUPLICATE KEY UPDATE duplicate=duplicate+1
Run Code Online (Sandbox Code Playgroud)

我正在使用CodeIgniter并将我之前的所有控制器内SQL查询转换为ActiveRecord.有没有办法在基于ActiveRecord的模型中执行此操作?

谢谢!

插口

mysql activerecord model codeigniter

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

动态Active Record查询中的Codeigniter括号

我使用ActiveRecord生成如下查询

SELECT * FROM (`foods`) WHERE `type` = 'fruits' AND 
       `tags` LIKE '%green%' OR `tags` LIKE '%blue%' OR `tags` LIKE '%red%'
Run Code Online (Sandbox Code Playgroud)

数量tags和值未知.数组是动态创建的.下面我添加了一个可能的数组.

$tags = array (                 
        '0'     => 'green'.
        '1'     => 'blue',
        '2'     => 'red'
);  
Run Code Online (Sandbox Code Playgroud)

有一个标签数组,我使用以下循环来创建我发布在顶部的查询.

$this->db->where('type', $type); //var type is retrieved from input value

foreach($tags as $tag):         
     $this->db->or_like('tags', $tag);
endforeach; 
Run Code Online (Sandbox Code Playgroud)

问题:我需要在LIKE下面的子句中添加括号:

SELECT * FROM (`foods`) WHERE `type` = 'fruits' AND 
      (`tags` LIKE '%green%' OR `tags` LIKE '%blue%' OR `tags` LIKE '%red%')
Run Code Online (Sandbox Code Playgroud)

我知道如果括号内的内容是静态的,但是foreach循环将我抛弃,我该怎么做到这一点.

mysql arrays activerecord codeigniter

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

Codeigniter $ this-> db-> get(),如何返回特定行的值?

假设我有一个包含三列的数据库表:ID,Name和Age.我需要找到具有特定(唯一)ID的用户,然后返回年龄.目前,我使用以下代码

$this->db->where('id', '3');
$q = $this->db->get('my_users_table');
Run Code Online (Sandbox Code Playgroud)

我如何为这个用户获取年龄?我想我必须使用

$q->result()
Run Code Online (Sandbox Code Playgroud)

但不知道如何使用它一行.

php sql codeigniter

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

使用codeigniter发送html邮件

在codeigniter中使用SMTP的邮件内容出错实际上,我的邮件是带有HTML标签的,它显示的HTML标签不正确.

$config = Array(
'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.googlemail.com',
        'smtp_port' => 465,
        'smtp_user' => 'user@gmail.com',
        'smtp_pass' => '',
        'mailtype'  => 'html', 
        'charset' => 'utf-8',
        'wordwrap' => TRUE

    );
    $this->load->library('email', $config);
    $this->email->set_newline("\r\n");
    $email_body ="<div>hello world</div>";
    $this->email->from('user@gmail.com', 'ddd');

    $list = array('user@gmail.com');
    $this->email->to($list);
    $this->email->subject('Testing Email');
    $this->email->message($email_body);

    $this->email->send();
    echo $this->email->print_debugger();
Run Code Online (Sandbox Code Playgroud)

如果不使用SMTP发送邮件,它可以正常工作.我的错是什么?

html email codeigniter

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

可以从Code Igniter中的模型中的另一个模型调用方法吗?

可以从Code Igniter中的模型中的另一个模型调用方法吗?我试了一下,在我自动加载了所有模型之后似乎工作了.

但是,模型的排序是否重要?仅仅因为它对我有用并不意味着它一直有效.

codeigniter

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

CodeIgniter - >获取相对于基本URL的当前URL

尝试URI::uri_string()但无法使用base_url.

网址:http://localhost/dropbox/derrek/shopredux/ahahaha/hihihi
返回:dropbox/derrek/shopredux/ahahaha/hihihi

但http://localhost/dropbox/derrek/shopredux/只返回一个空字符串.

我希望第一个电话返回"ahahaha/hihihi",第二个电话返回"".有这样的功能吗?

url codeigniter function

20
推荐指数
7
解决办法
13万
查看次数

is_unique用于codeigniter表单验证

我想弄清楚如何is_unique在以下情况下使用Codeigniter表单验证库中的规则.

我正在尝试提交编辑用户表单并具有以下规则:

$this->form_validation->set_rules('user_name', 'User Name', 'required|trim|xss_clean|is_unique[users.user_name]');
Run Code Online (Sandbox Code Playgroud)

如果表单中的其他值被更改但该值保持不变,该怎么办?表单将会看到此值已经存在,因此如果不更改此值,我将如何保护它不被编辑.

php codeigniter

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

使用CodeIgniter在子文件夹中路由控制器

因为我想分离系统的前端和后端.我在控制器中创建了2个文件夹作为前端和后端

下面是我的控制器文件夹的结构

controller
 --frontend
   ---store.php
   ---processing.php
   ---profile.php
   ---authenticate.php
   ---register.php 

 --backend
   ---authenticate.php
   ---stats.php
   ---users.php
   ---property_manage.php
   ---register.php 
Run Code Online (Sandbox Code Playgroud)

我可以通过使用来访问这些功能

frontend/store/add
frontend/store/manage
......

backend/stats/sales
backend/stats/payments
.....
Run Code Online (Sandbox Code Playgroud)

但我想从网址中取下前端和后端段.

我检查了codeigniter中的路由功能,但据我所知,我需要单独指定每条路由.由于我有大约12个控制器,每个控制器有大约10-15个功能,我可能需要指定路由的每个功能.

有没有其他有效的方法来实现使用路由或任何其他方式?(不使用任何htaccess)

php codeigniter codeigniter-2

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