使用callback_before_insert方法两次

时间:2014-05-05 23:15:24

标签: php codeigniter grocery-crud

当使用callback_before_insert两次时,实施一个而另一个未实现

首次使用

$crud->field_type('state', 'invisible');
$crud->add_fields('state', 'delete_time');
$crud->callback_before_insert(array($this, 'Invisible_callback'));

function Invisible_callback($post_array) {
  $post_array['state'] = 1;
  return $post_array;
}

第二次使用

$crud->field_type('delete_time', 'invisible');
$crud->add_fields('state', 'delete_time');
$crud->callback_before_insert(array($this, 'Invisible_deleteTime_callback'));

function Invisible_deleteTime_callback($post_array) {
  $post_array['delete_time'] = 2000;      
  return $post_array;
}
回调第一次使用内部的回调,但是在使用callback_before_insert两次时第二次使用内部的回调没有实现。

我必须使用callback_before_insert两次。

现在,如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您不能将callback_before_insert两次与crud个对象一起使用。如果你真的想要使用它两次,可以:

  1. 创建新的crud对象(无论是谁会给你一个新的表单而不是来自同一表单的数据)

  2. 只使用1次callback_before_insert调用,在回调方法中,您需要检查以查看您正在管理的表单状态。

  3. 使用url中的参数列表或参数来确定您所处的状态。然后使用if / else并调用所需的callback_before_insert。

  4. 所以这取决于你的情景...