2009-10-30 2 views
0
public function test(){ 
     $data = ORM::factory('testdata')->find_all(); 

     Table::factory() 
      ->set_body_data($data) 
      ->set_row_titles('id') 
      ->set_column_titles(Table::AUTO) 
      ->set_callback('format_row', 'row') 
      ->render(true); 

      $this->template->title = ''; 
      $this->template->payment_content = ''; 
    } 

    function format_row($row, $index){ 
     if ($index % 2 == 0) return new Tr('', 'zebra'); 
    } 

// получает сообщение об ошибке: функция обратного вызова format_row не существует !, оба метод, объявленный в классе контроллера (Payment_Controller)обратных вызовов в MVC

как мне делать обратные вызовы в MVC?

+0

Не могли бы вы описать проблему более подробно - и, точнее, ошибку? – arbales

+0

просто добавил дополнительный комментарий ... надеюсь, что поможет – yretuta

ответ

2

Если format_row() также относится к классу, где существует метод test(), тогда обратный вызов должен быть передан как array($this, 'format_row'). Итак, возможно, вы должны изменить линию 7 test() на ->set_callback(array($this, 'format_row'), 'row').

+0

Однако это не имеет никакого отношения к тому, используете ли вы MVC или нет ... –

+0

как бы это сделать, если обратный вызов находится в другом классе контроллера, скажем, в класс объявляет как Main_Controller – yretuta

+0

Затем 'array (new Main_Controller, 'format_row')', если это метод экземпляра, или 'array ('Main_Controller', 'format_row')', если он является статическим. –

Смежные вопросы