我正在使用由" Vincent Bambico和Yusuf Ozdemir编写的数据表Libray" https://github.com/IgnitedDatatables/Ignited-Datatables
我已查看此处提供的支持信息http://codeigniter.com/forums/viewthread/160896/
我在使用编辑列功能时遇到问题。
function paging()
{
$this->load->helper('form');
$this->load->library('Datatables');
$this->datatables->select('id, name, visit_date, date_created, postcode, order_total, status')
->from('day_orders')
->edit_column('status','$1', 'callback_cap(status)')
->edit_column('date_created','$1', 'callback_date(date_created)');
echo $this->datatables->generate();
}
public function cap($i)
{
return ucfirst($i);
}
public function date($i)
{
return date('d-m-Y', $i);
}
而不是输出到json字符串的数据,我得到的是我作为第三个参数输入的文本,所以" callback_date(date_created)"例如。不确定我做错了什么?任何想法?
编辑: 问题似乎是图书馆无法找到我的任何回叫功能。上面的代码示例都包含在一个类中。我已经尝试将回调函数放在几个不同的地方,包括lib文件中,但我还没有运气。
当我们通过" function_exists"来检查函数是否存在时没有找到任何功能。我已经完成了一些研究,我认为问题是由于我使用的课程结构,但我不知道如何解决这个问题。
答案 0 :(得分:0)
我知道这个问题已经有一年了。但是我今天遇到了同样的情况,虽然我会在这里分享我发现的内容以及我如何修复同样的问题。它有望帮助某人。
我从Github下载了最新版本的Ignited Datatables库。
https://github.com/IgnitedDatatables/Ignited-Datatables
然后,我在以下blog中找到了此解决方案。虽然它有一些错误和问题,但我很容易通过自己修复并使其正常工作。
您需要做的是将回调函数作为辅助函数包含。
将此保存在application / helpers / my_datatable_helper.php
中<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* edit_column callback function in Codeigniter (Ignited Datatables)
*
* Grabs a value from the edit_column field for the specified field so you can
* return the desired value.
*
* @access public
* @return mixed
*/
if ( ! function_exists('check_status'))
{
function check_status($status = '')
{
return ($status == 1) ? 'Active' : 'Inactive';
}
}
/* End of file MY_datatable_helper.php */
/* Location: ./application/helpers/MY_datatable_helper.php */
然后在你的控制器中,在调用edit_column方法之前,加载这个帮助器,如下所示。
$this->load->library('Datatables');
$this->load->helper('My_datatable_helper');
$this->datatables->edit_column('is_active','$1', '$this->test(is_active)');
希望这会有所帮助:)